From f448c597886a375b1b343b8b7187c65a6d659fb6 Mon Sep 17 00:00:00 2001 From: acc987 <39603492+acc987@users.noreply.github.com> Date: Thu, 3 Apr 2025 18:16:19 +0200 Subject: [PATCH 1/8] Added OffsetTime{Original,Digitized} Exif tags --- ext/exif/exif.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ext/exif/exif.c b/ext/exif/exif.c index 0f63c76e2323f..c1a75f7b0c580 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -420,6 +420,8 @@ static char *exif_get_tagformat(int format) #define TAG_EXIFVERSION 0x9000 #define TAG_DATE_TIME_ORIGINAL 0x9003 #define TAG_DATE_TIME_DIGITIZED 0x9004 +#define TAG_OFFSET_TIME_ORIGINAL 0x9011 +#define TAG_OFFSET_TIME_DIGITIZED 0x9012 #define TAG_COMPONENT_CONFIG 0x9101 #define TAG_COMPRESSED_BITS_PER_PIXEL 0x9102 #define TAG_SHUTTERSPEED 0x9201 @@ -692,6 +694,8 @@ static tag_info_array tag_table_IFD = { { 0x9000, "ExifVersion"}, { 0x9003, "DateTimeOriginal"}, { 0x9004, "DateTimeDigitized"}, + { 0x9011, "OffsetTimeOriginal"}, + { 0x9012, "OffsetTimeDigitized"}, { 0x9101, "ComponentsConfiguration"}, { 0x9102, "CompressedBitsPerPixel"}, { 0x9201, "ShutterSpeedValue"}, From e804ffef4b5336bdaba27ec8d8791af921f7c2e5 Mon Sep 17 00:00:00 2001 From: acc987 <39603492+acc987@users.noreply.github.com> Date: Thu, 3 Apr 2025 18:38:02 +0200 Subject: [PATCH 2/8] Added test image for OffsetTime{Original,Digitized}. --- ext/exif/tests/image028.jpg | Bin 0 -> 475 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ext/exif/tests/image028.jpg diff --git a/ext/exif/tests/image028.jpg b/ext/exif/tests/image028.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9127b3d829c580e5fa7ec3878fb184900685f50d GIT binary patch literal 475 zcmbV|zYYOG5XQf;#6=XhsA!bJN!FpcMj^HyN*~vHhq91T);WPwsc;o^4iQ{Cwm;+ISHUI|>)lpzYyqDBS^om*#mgj(6 z^`rS!EWiXc-kUg|=v^$WE;8T8l|&yn=P=z(kN4>-e;BAip!!Xv0=tl6J;vy~uh3OC zg}!5K-55t%!+espHmTDmNQVuPAoeXuNYZB>iW%c~lniy#6o%4YDu3w>WkK9TNQ|(B GzP Date: Thu, 3 Apr 2025 18:43:25 +0200 Subject: [PATCH 3/8] Added a test for OffsetTime{Original,Digitized}. --- ext/exif/tests/exif028.phpt | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 ext/exif/tests/exif028.phpt diff --git a/ext/exif/tests/exif028.phpt b/ext/exif/tests/exif028.phpt new file mode 100644 index 0000000000000..8a6b629ce6395 --- /dev/null +++ b/ext/exif/tests/exif028.phpt @@ -0,0 +1,55 @@ +--TEST-- +Check for exif_read_data, JPEG with IFD data containg OffsetTimeOriginal and OffsetTimeDigitized tags in Motorola byte-order. +--EXTENSIONS-- +exif +--INI-- +output_handler= +zlib.output_compression=0 +--FILE-- + +--EXPECTF-- +array(15) { + ["FileName"]=> + string(12) "image028.jpg" + ["FileDateTime"]=> + int(1743698202) + ["FileSize"]=> + int(475) + ["FileType"]=> + int(2) + ["MimeType"]=> + string(10) "image/jpeg" + ["SectionsFound"]=> + string(13) "ANY_TAG, IFD0" + ["COMPUTED"]=> + array(5) { + ["html"]=> + string(20) "width="1" height="1"" + ["Height"]=> + int(1) + ["Width"]=> + int(1) + ["IsColor"]=> + int(1) + ["ByteOrderMotorola"]=> + int(1) + } + ["XResolution"]=> + string(5) "300/1" + ["YResolution"]=> + string(5) "300/1" + ["ResolutionUnit"]=> + int(2) + ["YCbCrPositioning"]=> + int(1) + ["DateTimeOriginal"]=> + string(19) "2025:04:03 00:00:00" + ["DateTimeDigitized"]=> + string(19) "2025:04:03 00:01:00" + ["OffsetTimeOriginal"]=> + string(6) "+00:00" + ["OffsetTimeDigitized"]=> + string(6) "-01:00" +} From d6fd5e1b1770f8064fe46780a8212f6da5e340a2 Mon Sep 17 00:00:00 2001 From: acc987 <39603492+acc987@users.noreply.github.com> Date: Thu, 3 Apr 2025 18:51:27 +0200 Subject: [PATCH 4/8] Added OffsetTime. --- ext/exif/exif.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/exif/exif.c b/ext/exif/exif.c index c1a75f7b0c580..9169861728869 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -420,6 +420,7 @@ static char *exif_get_tagformat(int format) #define TAG_EXIFVERSION 0x9000 #define TAG_DATE_TIME_ORIGINAL 0x9003 #define TAG_DATE_TIME_DIGITIZED 0x9004 +#define TAG_OFFSET_TIME 0x9010 #define TAG_OFFSET_TIME_ORIGINAL 0x9011 #define TAG_OFFSET_TIME_DIGITIZED 0x9012 #define TAG_COMPONENT_CONFIG 0x9101 @@ -694,6 +695,7 @@ static tag_info_array tag_table_IFD = { { 0x9000, "ExifVersion"}, { 0x9003, "DateTimeOriginal"}, { 0x9004, "DateTimeDigitized"}, + { 0x9010, "OffsetTime"}, { 0x9011, "OffsetTimeOriginal"}, { 0x9012, "OffsetTimeDigitized"}, { 0x9101, "ComponentsConfiguration"}, From 266f2032da11741005922c6911342d402eae8eda Mon Sep 17 00:00:00 2001 From: acc987 <39603492+acc987@users.noreply.github.com> Date: Thu, 3 Apr 2025 18:52:52 +0200 Subject: [PATCH 5/8] Updated test image to include OffsetTime --- ext/exif/tests/image028.jpg | Bin 475 -> 527 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ext/exif/tests/image028.jpg b/ext/exif/tests/image028.jpg index 9127b3d829c580e5fa7ec3878fb184900685f50d..57110cec8f768dcd6ea9970a20f37f783c7a9d74 100644 GIT binary patch delta 169 zcmcc3+|M#Wy#AAGMP?cUgRd`x76StV2Ll(Q6ay=e#R$Z0jM8v+AEO2XGgzDnC~3q1 zBpF12cp8&1R2-;d0yA8E)dUted*1{BFq<8y{?Y_NIQ!NFAuc%Q(ZmjARwF9|1BQun OG}v_wz|4(@B^Uv_UlrQ` delta 144 zcmeBYxy?L5yndf+MP?cUgRd`x76StV2LlJA6ay=e#R$ZCjM8v+8KVXRGgzF7fq_XF z$_A>Mz{~&?VGsf0x(O_B_M{1dU^Y8YeAxscIC~wC4+M-lAcBEm;yTfZ*CjXp5N8Ac Dus{&@ From ea2f5f91c9e01f971e5fe04f5b1d9f74194b0fdb Mon Sep 17 00:00:00 2001 From: acc987 <39603492+acc987@users.noreply.github.com> Date: Thu, 3 Apr 2025 18:55:33 +0200 Subject: [PATCH 6/8] Updated test to include OffsetTime --- ext/exif/tests/exif028.phpt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ext/exif/tests/exif028.phpt b/ext/exif/tests/exif028.phpt index 8a6b629ce6395..567873dc5c5ba 100644 --- a/ext/exif/tests/exif028.phpt +++ b/ext/exif/tests/exif028.phpt @@ -10,13 +10,13 @@ zlib.output_compression=0 var_dump(exif_read_data(__DIR__.'/image028.jpg')); ?> --EXPECTF-- -array(15) { +array(17) { ["FileName"]=> string(12) "image028.jpg" ["FileDateTime"]=> - int(1743698202) + int(1743698945) ["FileSize"]=> - int(475) + int(527) ["FileType"]=> int(2) ["MimeType"]=> @@ -42,12 +42,16 @@ array(15) { string(5) "300/1" ["ResolutionUnit"]=> int(2) + ["DateTime"]=> + string(19) "2025:04:03 00:02:00" ["YCbCrPositioning"]=> int(1) ["DateTimeOriginal"]=> string(19) "2025:04:03 00:00:00" ["DateTimeDigitized"]=> string(19) "2025:04:03 00:01:00" + ["OffsetTime"]=> + string(6) "-02:00" ["OffsetTimeOriginal"]=> string(6) "+00:00" ["OffsetTimeDigitized"]=> From f8f43377abc638bf59059b6acc9a950cfceaf813 Mon Sep 17 00:00:00 2001 From: acc987 <39603492+acc987@users.noreply.github.com> Date: Thu, 3 Apr 2025 19:03:13 +0200 Subject: [PATCH 7/8] Updated test description. --- ext/exif/tests/exif028.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/exif/tests/exif028.phpt b/ext/exif/tests/exif028.phpt index 567873dc5c5ba..6df1e5e747446 100644 --- a/ext/exif/tests/exif028.phpt +++ b/ext/exif/tests/exif028.phpt @@ -1,5 +1,5 @@ --TEST-- -Check for exif_read_data, JPEG with IFD data containg OffsetTimeOriginal and OffsetTimeDigitized tags in Motorola byte-order. +Check for exif_read_data, JPEG with IFD data containg OffsetTime, OffsetTimeOriginal, and OffsetTimeDigitized tags in Motorola byte-order. --EXTENSIONS-- exif --INI-- From c85a493f1e8ca379da9618904a3e3e5e67f51e15 Mon Sep 17 00:00:00 2001 From: acc987 <39603492+acc987@users.noreply.github.com> Date: Thu, 3 Apr 2025 19:26:40 +0200 Subject: [PATCH 8/8] Use substitution tags for FileDateTime and FileSize. --- ext/exif/tests/exif028.phpt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/exif/tests/exif028.phpt b/ext/exif/tests/exif028.phpt index 6df1e5e747446..5ca06616ba679 100644 --- a/ext/exif/tests/exif028.phpt +++ b/ext/exif/tests/exif028.phpt @@ -14,9 +14,9 @@ array(17) { ["FileName"]=> string(12) "image028.jpg" ["FileDateTime"]=> - int(1743698945) + int(%d) ["FileSize"]=> - int(527) + int(%d) ["FileType"]=> int(2) ["MimeType"]=>