]> granicus.if.org Git - php/commitdiff
Added more EXIF MAKERNOTE formats:
authorKalle Sommer Nielsen <kalle@php.net>
Sun, 28 May 2017 12:00:51 +0000 (14:00 +0200)
committerKalle Sommer Nielsen <kalle@php.net>
Sun, 28 May 2017 12:00:51 +0000 (14:00 +0200)
 - AGFA,
 - Kyocera
 - Ricoh
 - Epson

NEWS
UPGRADING
ext/exif/exif.c

diff --git a/NEWS b/NEWS
index a66c04fc48ce9959d93330b8c8d55ed2afe54c5b..18277fb8e306a59971b1568ad8d2436eb853bda4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -78,7 +78,8 @@ PHP                                                                        NEWS
 
 - EXIF:
   . Added support for vendor specific tags for the following formats:
-    Samsung, DJI, Panasonic, Sony, Pentax, Minolta & Sigma/Foveon. (Kalle)
+    Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, 
+       Kyocera, Ricoh & Epson. (Kalle)
   . Fixed bug #72682 (exif_read_data() fails to read all data for some
     images). (Kalle)
   . Fixed bug #71534 (Type confusion in exif_read_data() leading to heap
index 4a6169438376c7ec58bfe406869f4e15690b5128..934dca8b49e2451b3cba832a50f77cf95b1036f5 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -238,7 +238,8 @@ See also: https://wiki.php.net/rfc/deprecations_php_7_2
 
 - EXIF:
    . Added extended exif tag support for the following formats: 
-     Samsung, DJI, Panasonic, Sony, Pentax, Minolta & Sigma/Foveon.
+     Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, 
+        AGFA, Kyocera, Ricoh & Epson.
 
 - GD:
   . Removed --enable-gd-native-ttf configuration option which was unused as
index 3ff684282456bd70f44288eb20ac472d0eb017ca..1e981ffcd2593a00fb6ae2b0202d7e36272d3a25 100644 (file)
@@ -144,9 +144,9 @@ PHP_MINFO_FUNCTION(exif)
                php_info_print_table_row(2, "Multibyte decoding support using mbstring", "disabled");
        }
 
-       php_info_print_table_row(2, "Extended EXIF tag formats", "Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon");
-
+       php_info_print_table_row(2, "Extended EXIF tag formats", "Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon, Kyocera, Ricoh, AGFA, Epson");
        php_info_print_table_end();
+
        DISPLAY_INI_ENTRIES();
 }
 /* }}} */
@@ -1318,6 +1318,20 @@ static tag_info_array tag_table_VND_SIGMA = {
   TAG_TABLE_END
 };
 
+static tag_info_array tag_table_VND_KYOCERA = {
+  { 0x0001, "FormatThumbnail"}, 
+  { 0x0E00, "PrintImageMatchingInfo"}, 
+  TAG_TABLE_END
+};
+
+static tag_info_array tag_table_VND_RICOH = {
+  { 0x0001, "MakerNoteDataType"}, 
+  { 0x0002, "Version"}, 
+  { 0x0E00, "PrintImageMatchingInfo"}, 
+  { 0x2001, "RicohCameraInfoMakerNoteSubIFD"}, 
+  TAG_TABLE_END
+};
+
 typedef enum mn_byte_order_t {
        MN_ORDER_INTEL    = 0,
        MN_ORDER_MOTOROLA = 1,
@@ -1343,20 +1357,27 @@ typedef struct {
 
 /* Remember to update PHP_MINFO if updated */
 static const maker_note_type maker_note_array[] = {
-  { tag_table_VND_CANON,     "Canon",                   NULL,  NULL,                       0,  0,  MN_ORDER_INTEL,    MN_OFFSET_GUESS},
-  { tag_table_VND_CASIO,     "CASIO",                   NULL,  NULL,                       0,  0,  MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL},
-  { tag_table_VND_FUJI,      "FUJIFILM",                NULL,  "FUJIFILM\x0C\x00\x00\x00", 12, 12, MN_ORDER_INTEL,    MN_OFFSET_MAKER},
-  { tag_table_VND_NIKON,     "NIKON",                   NULL,  "Nikon\x00\x01\x00",        8,  8,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL},
-  { tag_table_VND_NIKON_990, "NIKON",                   NULL,  NULL,                       0,  0,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL},
-  { tag_table_VND_OLYMPUS,   "OLYMPUS OPTICAL CO.,LTD", NULL,  "OLYMP\x00\x01\x00",        8,  8,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL},
-  { tag_table_VND_SAMSUNG,   "SAMSUNG",                 NULL, NULL,                        0,  0,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
-  { tag_table_VND_PANASONIC, "Panasonic",               NULL, "Panasonic\x00\x00\x00",     12, 12, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
-  { tag_table_VND_DJI,       "DJI",                     NULL, NULL,                        0, 0,   MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
-  { tag_table_VND_SONY,      "SONY",                    NULL, "SONY DSC \x00\x00\x00",     12, 12, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
-  { tag_table_VND_PENTAX,    "PENTAX",                  NULL, "AOC\x00",                   6,  6,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
-  { tag_table_VND_MINOLTA,   "Minolta, KONICA MINOLTA", NULL, NULL,                        0,  0,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
-  { tag_table_VND_SIGMA,     "SIGMA, FOVEON",           NULL, "SIGMA\x00\x00\x00",         10, 10, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
-  { tag_table_VND_SIGMA,     "SIGMA, FOVEON",           NULL, "FOVEON\x00\x00\x00",        10, 10, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}
+  { tag_table_VND_CANON,     "Canon",                   NULL,  NULL,                                                    0,  0,  MN_ORDER_INTEL,    MN_OFFSET_GUESS},
+  { tag_table_VND_CASIO,     "CASIO",                   NULL,  NULL,                                                    0,  0,  MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL},
+  { tag_table_VND_FUJI,      "FUJIFILM",                NULL,  "FUJIFILM\x0C\x00\x00\x00",              12, 12, MN_ORDER_INTEL,    MN_OFFSET_MAKER},
+  { tag_table_VND_NIKON,     "NIKON",                   NULL,  "Nikon\x00\x01\x00",                             8,  8,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL},
+  { tag_table_VND_NIKON_990, "NIKON",                   NULL,  NULL,                                                    0,  0,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL},
+  { tag_table_VND_OLYMPUS,   "OLYMPUS OPTICAL CO.,LTD", NULL,  "OLYMP\x00\x01\x00",                             8,  8,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL},
+  { tag_table_VND_SAMSUNG,   "SAMSUNG",                 NULL, NULL,                                                             0,  0,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_PANASONIC, "Panasonic",               NULL, "Panasonic\x00\x00\x00",                  12, 12, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_DJI,       "DJI",                     NULL, NULL,                                                             0, 0,   MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_SONY,      "SONY",                    NULL, "SONY DSC \x00\x00\x00",          12, 12, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_PENTAX,    "PENTAX",                  NULL, "AOC\x00",                                                6,  6,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_MINOLTA,   "Minolta, KONICA MINOLTA", NULL, NULL,                                                             0,  0,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_SIGMA,     "SIGMA, FOVEON",           NULL, "SIGMA\x00\x00\x00",                              10, 10, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_SIGMA,     "SIGMA, FOVEON",           NULL, "FOVEON\x00\x00\x00",                             10, 10, MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_KYOCERA,   "KYOCERA, CONTAX",                        NULL, "KYOCERA            \x00\x00\x00", 22, 22, MN_ORDER_NORMAL,   MN_OFFSET_MAKER}, 
+  { tag_table_VND_RICOH,        "RICOH",                                       NULL, "Ricoh",                                                   5,  5,  MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL}, 
+  { tag_table_VND_RICOH,     "RICOH",                                  NULL, "RICOH",                                                   5,  5,  MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL}, 
+
+  /* These re-uses existing formats */
+  { tag_table_VND_OLYMPUS,   "AGFA",                                   NULL, "AGFA \x00\x01",                                   8,  8,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}, 
+  { tag_table_VND_OLYMPUS,   "EPSON",                                  NULL, "EPSON\x00\x01\x00",                           8,  8,  MN_ORDER_NORMAL,   MN_OFFSET_NORMAL}
 };
 /* }}} */