Image metadata fields for EXIF (APP1 / TIFF IFDs) and XMP embedding in JPEG files. More...
#include <image_metadata.h>
Data Fields | |
| std::string | make = "Helios" |
| Camera manufacturer string (EXIF tag 0x010F). | |
| std::string | model |
| Camera model string (EXIF tag 0x0110). | |
| std::string | software = "Helios" |
| Software / creator-tool string (EXIF tag 0x0131). | |
| std::string | datetime |
| File modification timestamp, formatted "YYYY:MM:DD HH:MM:SS" (local time) (EXIF tag 0x0132). | |
| unsigned int | orientation = 1 |
| Image orientation; 1 = normal (EXIF tag 0x0112). | |
| std::string | datetime_original |
| Original capture timestamp, formatted "YYYY:MM:DD HH:MM:SS" (local time) (EXIF tag 0x9003). | |
| std::string | datetime_digitized |
| Digitization timestamp, formatted "YYYY:MM:DD HH:MM:SS" (local time) (EXIF tag 0x9004). | |
| std::string | offset_time |
| UTC offset for the datetime fields, formatted "+HH:MM" or "-HH:MM" (standard +E convention) (EXIF tag 0x9011). | |
| float | focal_length_mm = 0.f |
| Optical focal length in mm. 0 => tag omitted (EXIF tag 0x920A). | |
| float | focal_plane_x_resolution = 0.f |
| Pixels-per-unit along the X (horizontal) sensor axis (EXIF tag 0xA20E). | |
| float | focal_plane_y_resolution = 0.f |
| Pixels-per-unit along the Y (vertical) sensor axis (EXIF tag 0xA20F). | |
| unsigned int | focal_plane_resolution_unit = 3 |
| Resolution unit for focal-plane resolution. 2 = inch, 3 = cm. Default 3 (EXIF tag 0xA210). | |
| float | exposure_time_s = 0.f |
| Exposure time in seconds. 0 => tag omitted (EXIF tag 0x829A). | |
| float | f_number = 0.f |
| Lens f-number (aperture). 0 => tag omitted (EXIF tag 0x829D). | |
| unsigned int | iso = 0 |
| ISO speed rating. 0 => tag omitted (EXIF tag 0x8827). | |
| float | exposure_bias_ev = 0.f |
Exposure bias / gain in EV stops. Set has_exposure_bias to true to emit; defaults to 0 EV (EXIF tag 0x9204). | |
| bool | has_exposure_bias = false |
Whether exposure_bias_ev should be emitted (a 0 EV bias is meaningful, so a sentinel flag is needed). | |
| float | max_aperture_value_apex = 0.f |
| Maximum lens aperture in APEX units. 0 => tag omitted (EXIF tag 0x9205). | |
| float | subject_distance_m = 0.f |
| Distance from camera to subject (working distance) in meters. 0 => tag omitted (EXIF tag 0x9206). | |
| unsigned int | pixel_x_dimension = 0 |
| Image width in pixels (EXIF tag 0xA002). | |
| unsigned int | pixel_y_dimension = 0 |
| Image height in pixels (EXIF tag 0xA003). | |
| std::string | lens_make |
| Lens manufacturer string (EXIF tag 0xA433). | |
| std::string | lens_model |
| Lens model string (EXIF tag 0xA434). | |
| std::string | lens_specification |
| Lens specification string (EXIF tag 0xA432, written as ASCII fallback). | |
| unsigned int | exposure_mode = (unsigned int) -1 |
| Exposure mode: 0=Auto, 1=Manual, 2=Auto bracket. UINT_MAX => tag omitted (EXIF tag 0xA402). | |
| unsigned int | white_balance = (unsigned int) -1 |
| White balance: 0=Auto, 1=Manual. UINT_MAX => tag omitted (EXIF tag 0xA403). | |
| float | digital_zoom_ratio = 0.f |
| Digital zoom ratio. 0 => tag omitted; 1.0 indicates no zoom (EXIF tag 0xA404). | |
| unsigned int | focal_length_in_35mm = 0 |
| Focal length in mm scaled to 35 mm-film equivalent. 0 => tag omitted (EXIF tag 0xA405). | |
| bool | gps_valid = false |
| Whether GPS fields are populated and should be written. | |
| double | latitude_deg = 0.0 |
| Latitude in decimal degrees, +N / -S (standard convention). | |
| double | longitude_deg = 0.0 |
| Longitude in decimal degrees, +E / -W (standard convention; flipped from Helios's internal +W). | |
| double | altitude_m = 0.0 |
| Altitude in meters above sea level (or above the chosen reference if not WGS84). | |
| double | img_direction_deg = 0.0 |
| Image direction (bearing of optical axis projected onto horizontal plane), 0..360 from true North. | |
| std::string | gps_datestamp |
| GPS date stamp formatted "YYYY:MM:DD" in UTC. | |
| std::string | gps_timestamp_hms |
| GPS time stamp formatted "HH:MM:SS" in UTC. | |
| bool | xmp_valid = false |
| Whether XMP orientation fields are populated and should be written. | |
| double | yaw_deg = 0.0 |
| Camera yaw in degrees, 0=North, 90=East (Camera:Yaw). | |
| double | pitch_deg = 0.0 |
| Camera pitch in degrees, +down convention (Camera:Pitch). | |
| double | roll_deg = 0.0 |
| Camera roll in degrees about the optical axis (Camera:Roll). v1: always 0 — no up-vector in RadiationCamera. | |
Image metadata fields for EXIF (APP1 / TIFF IFDs) and XMP embedding in JPEG files.
Populated by callers (e.g., the radiation plugin) and consumed by the metadata-aware helios::writeJPEG overload. Fields left at their default-empty/zero values are omitted from the written EXIF/XMP segments. All angles are in degrees and all geographic coordinates use the standard convention (+N latitude, +E longitude) — callers are responsible for converting from any internal convention (e.g., Helios's non-standard +W longitude in helios::Location) before populating this struct.
Definition at line 32 of file image_metadata.h.
| double helios::ImageEXIFData::altitude_m = 0.0 |
Altitude in meters above sea level (or above the chosen reference if not WGS84).
Definition at line 105 of file image_metadata.h.
| std::string helios::ImageEXIFData::datetime |
File modification timestamp, formatted "YYYY:MM:DD HH:MM:SS" (local time) (EXIF tag 0x0132).
Definition at line 43 of file image_metadata.h.
| std::string helios::ImageEXIFData::datetime_digitized |
Digitization timestamp, formatted "YYYY:MM:DD HH:MM:SS" (local time) (EXIF tag 0x9004).
Definition at line 52 of file image_metadata.h.
| std::string helios::ImageEXIFData::datetime_original |
Original capture timestamp, formatted "YYYY:MM:DD HH:MM:SS" (local time) (EXIF tag 0x9003).
Definition at line 50 of file image_metadata.h.
| float helios::ImageEXIFData::digital_zoom_ratio = 0.f |
Digital zoom ratio. 0 => tag omitted; 1.0 indicates no zoom (EXIF tag 0xA404).
Definition at line 92 of file image_metadata.h.
| float helios::ImageEXIFData::exposure_bias_ev = 0.f |
Exposure bias / gain in EV stops. Set has_exposure_bias to true to emit; defaults to 0 EV (EXIF tag 0x9204).
Definition at line 70 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::exposure_mode = (unsigned int) -1 |
Exposure mode: 0=Auto, 1=Manual, 2=Auto bracket. UINT_MAX => tag omitted (EXIF tag 0xA402).
Definition at line 88 of file image_metadata.h.
| float helios::ImageEXIFData::exposure_time_s = 0.f |
Exposure time in seconds. 0 => tag omitted (EXIF tag 0x829A).
Definition at line 64 of file image_metadata.h.
| float helios::ImageEXIFData::f_number = 0.f |
Lens f-number (aperture). 0 => tag omitted (EXIF tag 0x829D).
Definition at line 66 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::focal_length_in_35mm = 0 |
Focal length in mm scaled to 35 mm-film equivalent. 0 => tag omitted (EXIF tag 0xA405).
Definition at line 94 of file image_metadata.h.
| float helios::ImageEXIFData::focal_length_mm = 0.f |
Optical focal length in mm. 0 => tag omitted (EXIF tag 0x920A).
Definition at line 56 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::focal_plane_resolution_unit = 3 |
Resolution unit for focal-plane resolution. 2 = inch, 3 = cm. Default 3 (EXIF tag 0xA210).
Definition at line 62 of file image_metadata.h.
| float helios::ImageEXIFData::focal_plane_x_resolution = 0.f |
Pixels-per-unit along the X (horizontal) sensor axis (EXIF tag 0xA20E).
Definition at line 58 of file image_metadata.h.
| float helios::ImageEXIFData::focal_plane_y_resolution = 0.f |
Pixels-per-unit along the Y (vertical) sensor axis (EXIF tag 0xA20F).
Definition at line 60 of file image_metadata.h.
| std::string helios::ImageEXIFData::gps_datestamp |
GPS date stamp formatted "YYYY:MM:DD" in UTC.
Definition at line 109 of file image_metadata.h.
| std::string helios::ImageEXIFData::gps_timestamp_hms |
GPS time stamp formatted "HH:MM:SS" in UTC.
Definition at line 111 of file image_metadata.h.
| bool helios::ImageEXIFData::gps_valid = false |
Whether GPS fields are populated and should be written.
Definition at line 99 of file image_metadata.h.
| bool helios::ImageEXIFData::has_exposure_bias = false |
Whether exposure_bias_ev should be emitted (a 0 EV bias is meaningful, so a sentinel flag is needed).
Definition at line 72 of file image_metadata.h.
| double helios::ImageEXIFData::img_direction_deg = 0.0 |
Image direction (bearing of optical axis projected onto horizontal plane), 0..360 from true North.
Definition at line 107 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::iso = 0 |
ISO speed rating. 0 => tag omitted (EXIF tag 0x8827).
Definition at line 68 of file image_metadata.h.
| double helios::ImageEXIFData::latitude_deg = 0.0 |
Latitude in decimal degrees, +N / -S (standard convention).
Definition at line 101 of file image_metadata.h.
| std::string helios::ImageEXIFData::lens_make |
Lens manufacturer string (EXIF tag 0xA433).
Definition at line 82 of file image_metadata.h.
| std::string helios::ImageEXIFData::lens_model |
Lens model string (EXIF tag 0xA434).
Definition at line 84 of file image_metadata.h.
| std::string helios::ImageEXIFData::lens_specification |
Lens specification string (EXIF tag 0xA432, written as ASCII fallback).
Definition at line 86 of file image_metadata.h.
| double helios::ImageEXIFData::longitude_deg = 0.0 |
Longitude in decimal degrees, +E / -W (standard convention; flipped from Helios's internal +W).
Definition at line 103 of file image_metadata.h.
| std::string helios::ImageEXIFData::make = "Helios" |
Camera manufacturer string (EXIF tag 0x010F).
Definition at line 37 of file image_metadata.h.
| float helios::ImageEXIFData::max_aperture_value_apex = 0.f |
Maximum lens aperture in APEX units. 0 => tag omitted (EXIF tag 0x9205).
Definition at line 74 of file image_metadata.h.
| std::string helios::ImageEXIFData::model |
Camera model string (EXIF tag 0x0110).
Definition at line 39 of file image_metadata.h.
| std::string helios::ImageEXIFData::offset_time |
UTC offset for the datetime fields, formatted "+HH:MM" or "-HH:MM" (standard +E convention) (EXIF tag 0x9011).
Definition at line 54 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::orientation = 1 |
Image orientation; 1 = normal (EXIF tag 0x0112).
Definition at line 45 of file image_metadata.h.
| double helios::ImageEXIFData::pitch_deg = 0.0 |
Camera pitch in degrees, +down convention (Camera:Pitch).
Definition at line 120 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::pixel_x_dimension = 0 |
Image width in pixels (EXIF tag 0xA002).
Definition at line 78 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::pixel_y_dimension = 0 |
Image height in pixels (EXIF tag 0xA003).
Definition at line 80 of file image_metadata.h.
| double helios::ImageEXIFData::roll_deg = 0.0 |
Camera roll in degrees about the optical axis (Camera:Roll). v1: always 0 — no up-vector in RadiationCamera.
Definition at line 122 of file image_metadata.h.
| std::string helios::ImageEXIFData::software = "Helios" |
Software / creator-tool string (EXIF tag 0x0131).
Definition at line 41 of file image_metadata.h.
| float helios::ImageEXIFData::subject_distance_m = 0.f |
Distance from camera to subject (working distance) in meters. 0 => tag omitted (EXIF tag 0x9206).
Definition at line 76 of file image_metadata.h.
| unsigned int helios::ImageEXIFData::white_balance = (unsigned int) -1 |
White balance: 0=Auto, 1=Manual. UINT_MAX => tag omitted (EXIF tag 0xA403).
Definition at line 90 of file image_metadata.h.
| bool helios::ImageEXIFData::xmp_valid = false |
Whether XMP orientation fields are populated and should be written.
Definition at line 116 of file image_metadata.h.
| double helios::ImageEXIFData::yaw_deg = 0.0 |
Camera yaw in degrees, 0=North, 90=East (Camera:Yaw).
Definition at line 118 of file image_metadata.h.