1.3.77
 
Loading...
Searching...
No Matches
helios::ImageEXIFData Struct Reference

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.
 

Detailed Description

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.

Field Documentation

◆ altitude_m

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.

◆ datetime

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.

◆ datetime_digitized

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.

◆ datetime_original

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.

◆ digital_zoom_ratio

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.

◆ exposure_bias_ev

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.

◆ exposure_mode

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.

◆ exposure_time_s

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.

◆ f_number

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.

◆ focal_length_in_35mm

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.

◆ focal_length_mm

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.

◆ focal_plane_resolution_unit

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.

◆ focal_plane_x_resolution

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.

◆ focal_plane_y_resolution

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.

◆ gps_datestamp

std::string helios::ImageEXIFData::gps_datestamp

GPS date stamp formatted "YYYY:MM:DD" in UTC.

Definition at line 109 of file image_metadata.h.

◆ gps_timestamp_hms

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.

◆ gps_valid

bool helios::ImageEXIFData::gps_valid = false

Whether GPS fields are populated and should be written.

Definition at line 99 of file image_metadata.h.

◆ has_exposure_bias

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.

◆ img_direction_deg

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.

◆ iso

unsigned int helios::ImageEXIFData::iso = 0

ISO speed rating. 0 => tag omitted (EXIF tag 0x8827).

Definition at line 68 of file image_metadata.h.

◆ latitude_deg

double helios::ImageEXIFData::latitude_deg = 0.0

Latitude in decimal degrees, +N / -S (standard convention).

Definition at line 101 of file image_metadata.h.

◆ lens_make

std::string helios::ImageEXIFData::lens_make

Lens manufacturer string (EXIF tag 0xA433).

Definition at line 82 of file image_metadata.h.

◆ lens_model

std::string helios::ImageEXIFData::lens_model

Lens model string (EXIF tag 0xA434).

Definition at line 84 of file image_metadata.h.

◆ lens_specification

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.

◆ longitude_deg

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.

◆ make

std::string helios::ImageEXIFData::make = "Helios"

Camera manufacturer string (EXIF tag 0x010F).

Definition at line 37 of file image_metadata.h.

◆ max_aperture_value_apex

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.

◆ model

std::string helios::ImageEXIFData::model

Camera model string (EXIF tag 0x0110).

Definition at line 39 of file image_metadata.h.

◆ offset_time

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.

◆ orientation

unsigned int helios::ImageEXIFData::orientation = 1

Image orientation; 1 = normal (EXIF tag 0x0112).

Definition at line 45 of file image_metadata.h.

◆ pitch_deg

double helios::ImageEXIFData::pitch_deg = 0.0

Camera pitch in degrees, +down convention (Camera:Pitch).

Definition at line 120 of file image_metadata.h.

◆ pixel_x_dimension

unsigned int helios::ImageEXIFData::pixel_x_dimension = 0

Image width in pixels (EXIF tag 0xA002).

Definition at line 78 of file image_metadata.h.

◆ pixel_y_dimension

unsigned int helios::ImageEXIFData::pixel_y_dimension = 0

Image height in pixels (EXIF tag 0xA003).

Definition at line 80 of file image_metadata.h.

◆ roll_deg

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.

◆ software

std::string helios::ImageEXIFData::software = "Helios"

Software / creator-tool string (EXIF tag 0x0131).

Definition at line 41 of file image_metadata.h.

◆ subject_distance_m

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.

◆ white_balance

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.

◆ xmp_valid

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.

◆ yaw_deg

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.


The documentation for this struct was generated from the following file: