Skip to content

Commit 818272a

Browse files
committed
Added more EXIF MAKERNOTE formats:
- AGFA, - Kyocera - Ricoh - Epson
1 parent 91663a9 commit 818272a

File tree

3 files changed

+41
-18
lines changed

3 files changed

+41
-18
lines changed

NEWS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ PHP NEWS
7878

7979
- EXIF:
8080
. Added support for vendor specific tags for the following formats:
81-
Samsung, DJI, Panasonic, Sony, Pentax, Minolta & Sigma/Foveon. (Kalle)
81+
Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA,
82+
Kyocera, Ricoh & Epson. (Kalle)
8283
. Fixed bug #72682 (exif_read_data() fails to read all data for some
8384
images). (Kalle)
8485
. Fixed bug #71534 (Type confusion in exif_read_data() leading to heap

UPGRADING

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@ See also: https://wiki.php.net/rfc/deprecations_php_7_2
238238

239239
- EXIF:
240240
. Added extended exif tag support for the following formats:
241-
Samsung, DJI, Panasonic, Sony, Pentax, Minolta & Sigma/Foveon.
241+
Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon,
242+
AGFA, Kyocera, Ricoh & Epson.
242243

243244
- GD:
244245
. Removed --enable-gd-native-ttf configuration option which was unused as

ext/exif/exif.c

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,9 @@ PHP_MINFO_FUNCTION(exif)
144144
php_info_print_table_row(2, "Multibyte decoding support using mbstring", "disabled");
145145
}
146146

147-
php_info_print_table_row(2, "Extended EXIF tag formats", "Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon");
148-
147+
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");
149148
php_info_print_table_end();
149+
150150
DISPLAY_INI_ENTRIES();
151151
}
152152
/* }}} */
@@ -1318,6 +1318,20 @@ static tag_info_array tag_table_VND_SIGMA = {
13181318
TAG_TABLE_END
13191319
};
13201320

1321+
static tag_info_array tag_table_VND_KYOCERA = {
1322+
{ 0x0001, "FormatThumbnail"},
1323+
{ 0x0E00, "PrintImageMatchingInfo"},
1324+
TAG_TABLE_END
1325+
};
1326+
1327+
static tag_info_array tag_table_VND_RICOH = {
1328+
{ 0x0001, "MakerNoteDataType"},
1329+
{ 0x0002, "Version"},
1330+
{ 0x0E00, "PrintImageMatchingInfo"},
1331+
{ 0x2001, "RicohCameraInfoMakerNoteSubIFD"},
1332+
TAG_TABLE_END
1333+
};
1334+
13211335
typedef enum mn_byte_order_t {
13221336
MN_ORDER_INTEL = 0,
13231337
MN_ORDER_MOTOROLA = 1,
@@ -1343,20 +1357,27 @@ typedef struct {
13431357

13441358
/* Remember to update PHP_MINFO if updated */
13451359
static const maker_note_type maker_note_array[] = {
1346-
{ tag_table_VND_CANON, "Canon", NULL, NULL, 0, 0, MN_ORDER_INTEL, MN_OFFSET_GUESS},
1347-
{ tag_table_VND_CASIO, "CASIO", NULL, NULL, 0, 0, MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL},
1348-
{ tag_table_VND_FUJI, "FUJIFILM", NULL, "FUJIFILM\x0C\x00\x00\x00", 12, 12, MN_ORDER_INTEL, MN_OFFSET_MAKER},
1349-
{ tag_table_VND_NIKON, "NIKON", NULL, "Nikon\x00\x01\x00", 8, 8, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1350-
{ tag_table_VND_NIKON_990, "NIKON", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1351-
{ tag_table_VND_OLYMPUS, "OLYMPUS OPTICAL CO.,LTD", NULL, "OLYMP\x00\x01\x00", 8, 8, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1352-
{ tag_table_VND_SAMSUNG, "SAMSUNG", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1353-
{ tag_table_VND_PANASONIC, "Panasonic", NULL, "Panasonic\x00\x00\x00", 12, 12, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1354-
{ tag_table_VND_DJI, "DJI", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1355-
{ tag_table_VND_SONY, "SONY", NULL, "SONY DSC \x00\x00\x00", 12, 12, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1356-
{ tag_table_VND_PENTAX, "PENTAX", NULL, "AOC\x00", 6, 6, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1357-
{ tag_table_VND_MINOLTA, "Minolta, KONICA MINOLTA", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1358-
{ tag_table_VND_SIGMA, "SIGMA, FOVEON", NULL, "SIGMA\x00\x00\x00", 10, 10, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1359-
{ tag_table_VND_SIGMA, "SIGMA, FOVEON", NULL, "FOVEON\x00\x00\x00", 10, 10, MN_ORDER_NORMAL, MN_OFFSET_NORMAL}
1360+
{ tag_table_VND_CANON, "Canon", NULL, NULL, 0, 0, MN_ORDER_INTEL, MN_OFFSET_GUESS},
1361+
{ tag_table_VND_CASIO, "CASIO", NULL, NULL, 0, 0, MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL},
1362+
{ tag_table_VND_FUJI, "FUJIFILM", NULL, "FUJIFILM\x0C\x00\x00\x00", 12, 12, MN_ORDER_INTEL, MN_OFFSET_MAKER},
1363+
{ tag_table_VND_NIKON, "NIKON", NULL, "Nikon\x00\x01\x00", 8, 8, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1364+
{ tag_table_VND_NIKON_990, "NIKON", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1365+
{ tag_table_VND_OLYMPUS, "OLYMPUS OPTICAL CO.,LTD", NULL, "OLYMP\x00\x01\x00", 8, 8, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1366+
{ tag_table_VND_SAMSUNG, "SAMSUNG", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1367+
{ tag_table_VND_PANASONIC, "Panasonic", NULL, "Panasonic\x00\x00\x00", 12, 12, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1368+
{ tag_table_VND_DJI, "DJI", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1369+
{ tag_table_VND_SONY, "SONY", NULL, "SONY DSC \x00\x00\x00", 12, 12, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1370+
{ tag_table_VND_PENTAX, "PENTAX", NULL, "AOC\x00", 6, 6, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1371+
{ tag_table_VND_MINOLTA, "Minolta, KONICA MINOLTA", NULL, NULL, 0, 0, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1372+
{ tag_table_VND_SIGMA, "SIGMA, FOVEON", NULL, "SIGMA\x00\x00\x00", 10, 10, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1373+
{ tag_table_VND_SIGMA, "SIGMA, FOVEON", NULL, "FOVEON\x00\x00\x00", 10, 10, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1374+
{ tag_table_VND_KYOCERA, "KYOCERA, CONTAX", NULL, "KYOCERA \x00\x00\x00", 22, 22, MN_ORDER_NORMAL, MN_OFFSET_MAKER},
1375+
{ tag_table_VND_RICOH, "RICOH", NULL, "Ricoh", 5, 5, MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL},
1376+
{ tag_table_VND_RICOH, "RICOH", NULL, "RICOH", 5, 5, MN_ORDER_MOTOROLA, MN_OFFSET_NORMAL},
1377+
1378+
/* These re-uses existing formats */
1379+
{ tag_table_VND_OLYMPUS, "AGFA", NULL, "AGFA \x00\x01", 8, 8, MN_ORDER_NORMAL, MN_OFFSET_NORMAL},
1380+
{ tag_table_VND_OLYMPUS, "EPSON", NULL, "EPSON\x00\x01\x00", 8, 8, MN_ORDER_NORMAL, MN_OFFSET_NORMAL}
13601381
};
13611382
/* }}} */
13621383

0 commit comments

Comments
 (0)