diff options
author | Glenn Randers-Pehrson <glennrp at users.sourceforge.net> | 2017-07-13 11:19:53 -0500 |
---|---|---|
committer | Glenn Randers-Pehrson <glennrp at users.sourceforge.net> | 2017-07-13 11:22:48 -0500 |
commit | 68cb0aaee3de6371b81a4613476d9b33e43e95b1 (patch) | |
tree | 86f4b7f941d11a18922dbc5321abd77ad14f4e98 /pngwutil.c | |
parent | 40943eb67aaf423bfd76dc9ce1e6ad98ba00a72e (diff) | |
download | libpng-68cb0aaee3de6371b81a4613476d9b33e43e95b1.tar.gz |
[libpng16] Implement eXIf chunk support
Diffstat (limited to 'pngwutil.c')
-rw-r--r-- | pngwutil.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/pngwutil.c b/pngwutil.c index dd800586b..348bb524d 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1473,6 +1473,37 @@ png_write_bKGD(png_structrp png_ptr, png_const_color_16p back, int color_type) } #endif +#ifdef PNG_WRITE_eXIf_SUPPORTED +/* Write the Exif data */ +void /* PRIVATE */ +png_write_eXIf(png_structrp png_ptr, png_bytep exif, int num_exif) +{ + int i; + png_byte buf[3]; + + png_debug(1, "in png_write_eXIf"); + + if (num_exif > (int)png_ptr->num_exif) + { + png_debug2(3, "num_exif = %d, png_ptr->num_exif = %d", num_exif, + png_ptr->num_exif); + + png_warning(png_ptr, "Invalid number of exif bytes specified"); + return; + } + + png_write_chunk_header(png_ptr, png_eXIf, (png_uint_32)(num_exif)); + + for (i = 0; i < num_exif; i++) + { + buf[i] = exif[i]; + png_write_chunk_data(png_ptr, buf, (png_size_t)1); + } + + png_write_chunk_end(png_ptr); +} +#endif + #ifdef PNG_WRITE_hIST_SUPPORTED /* Write the histogram */ void /* PRIVATE */ |