summaryrefslogtreecommitdiff
path: root/pngwutil.c
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2017-07-13 11:19:53 -0500
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2017-07-13 11:22:48 -0500
commit68cb0aaee3de6371b81a4613476d9b33e43e95b1 (patch)
tree86f4b7f941d11a18922dbc5321abd77ad14f4e98 /pngwutil.c
parent40943eb67aaf423bfd76dc9ce1e6ad98ba00a72e (diff)
downloadlibpng-68cb0aaee3de6371b81a4613476d9b33e43e95b1.tar.gz
[libpng16] Implement eXIf chunk support
Diffstat (limited to 'pngwutil.c')
-rw-r--r--pngwutil.c31
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 */