Difference between revisions of "Truxton exif create"

From truxwiki.com
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
=Parameters=
 
=Parameters=
 
==<code>truxton_handle</code>==
 
==<code>truxton_handle</code>==
The Truxton instance this event will belong.
+
The Truxton instance this camera information will belong.
 
This handle comes from calling <code>[[truxton_create]]()</code>.
 
This handle comes from calling <code>[[truxton_create]]()</code>.
  
Line 17: Line 17:
 
=Sample=
 
=Sample=
 
<source lang="C" highlight="16">
 
<source lang="C" highlight="16">
void add_exif(uint64_t truxton, uint64_t file_handle, uint8_t const * buffer, size_t buffer_size )
+
void add_exif( uint64_t truxton, uint64_t file_handle, uint8_t const * buffer, size_t buffer_size )
 
{
 
{
 
   char id[ 40 ];
 
   char id[ 40 ];
Line 32: Line 32:
 
   }
 
   }
  
   uint64_t exif_handle = truxton_create_exif(truxton);
+
   uint64_t exif_handle = truxton_create_exif( truxton );
  
 
   truxton_exif_set_gps_time( exif_handle, data.gps_time );
 
   truxton_exif_set_gps_time( exif_handle, data.gps_time );
Line 70: Line 70:
  
 
   truxton_exif_save( exif_handle );
 
   truxton_exif_save( exif_handle );
 
  char id[ 65 ];
 
  
 
   truxton_exif_get_id( exif_handle, id, sizeof( id ) );
 
   truxton_exif_get_id( exif_handle, id, sizeof( id ) );
Line 77: Line 75:
 
   printf( "EXIF ID is %s\n", id );
 
   printf( "EXIF ID is %s\n", id );
  
   truxton_exif_destroy(exif_handle);
+
   truxton_exif_destroy( exif_handle );
 
}
 
}
 
</source>
 
</source>

Latest revision as of 09:12, 10 February 2021

This creates an Exchangeable image file format object. You can use this to add records to the [EXIF] table in the database.

Syntax

uint64_t truxton_exif_create( uint64_t truxton_handle );

Parameters

truxton_handle

The Truxton instance this camera information will belong. This handle comes from calling truxton_create().

Return value

A handle to an EXIF object.

Sample

void add_exif( uint64_t truxton, uint64_t file_handle, uint8_t const * buffer, size_t buffer_size )
{
   char id[ 40 ];

   EXIF_PARSER parser;

   parser.Initialize( buffer, buffer_size );

   EXIF_DATA data;

   if ( fill_exif_data( parser, data ) == 0 )
   {
      return;
   }

   uint64_t exif_handle = truxton_create_exif( truxton );

   truxton_exif_set_gps_time( exif_handle, data.gps_time );
   truxton_exif_set_gps_time_offset( exif_handle, data.offsets.gps_time );
   truxton_exif_set_device_time( exif_handle, data.device_time );
   truxton_exif_set_device_time_offset( exif_handle, data.offsets.device_time );
   truxton_exif_set_latitude( exif_handle, data.latitude );
   truxton_exif_set_latitude_offset( exif_handle, data.offsets.latitude );
   truxton_exif_set_longitude( exif_handle, data.longitude );
   truxton_exif_set_longitude_offset( exif_handle, data.offsets.longitude );
   truxton_exif_set_altitude( exif_handle, data.altitude );
   truxton_exif_set_altitude_offset( exif_handle, data.offsets.altitude );
   truxton_exif_set_heading( exif_handle, data.heading);
   truxton_exif_set_heading_offset( exif_handle, data.offsets.heading );
   truxton_exif_set_focal_length( exif_handle, data.focal_length );
   truxton_exif_set_focal_length_offset( exif_handle, data.offsets.focal_length );
   truxton_exif_set_shutter_count( exif_handle, data.shutter_count );
   truxton_exif_set_shutter_count_offset( exif_handle, data.offsets.shutter_count );
   truxton_exif_set_thumbnail_offset( exif_handle, data.thumbnail_offset );
   truxton_exif_set_thumbnail_offset_offset( exif_handle, data.offsets.thumbnail_offset );
   truxton_exif_set_thumbnail_length( exif_handle, data.thumbnail_length );
   truxton_exif_set_thumbnail_length_offset( exif_handle, data.offsets.thumbnail_length );
   truxton_exif_set_make( exif_handle, data.make );
   truxton_exif_set_make_offset( exif_handle, data.offsets.make );
   truxton_exif_set_model( exif_handle, data.model );
   truxton_exif_set_model_offset( exif_handle, data.offsets.model );
   truxton_exif_set_body_serial_number( exif_handle, data.body_serial_number );
   truxton_exif_set_body_serial_number_offset( exif_handle, data.offsets.body_serial_number );
   truxton_exif_set_lens_serial_number( exif_handle, data.lens_serial_number );
   truxton_exif_set_lens_serial_number_offset( exif_handle, data.offsets.lens_serial_number );

   truxton_file_get_id( file_handle, id, sizeof( id ) );
   truxton_exif_set_file_id( exif_handle, id );

   truxton_file_get_media_id( file_handle, id, sizeof( id ) );
   truxton_exif_set_media_id( exif_handle, id );

   truxton_exif_save( exif_handle );

   truxton_exif_get_id( exif_handle, id, sizeof( id ) );

   printf( "EXIF ID is %s\n", id );

   truxton_exif_destroy( exif_handle );
}