aboutsummaryrefslogtreecommitdiff
path: root/magic/Magdir/jpeg
diff options
context:
space:
mode:
Diffstat (limited to 'magic/Magdir/jpeg')
-rw-r--r--magic/Magdir/jpeg55
1 files changed, 35 insertions, 20 deletions
diff --git a/magic/Magdir/jpeg b/magic/Magdir/jpeg
index 9cebadad70d5..8a18727dd2dc 100644
--- a/magic/Magdir/jpeg
+++ b/magic/Magdir/jpeg
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
-# $File: jpeg,v 1.38 2022/12/02 17:42:04 christos Exp $
+# $File: jpeg,v 1.40 2024/11/10 00:26:35 christos Exp $
# JPEG images
# SunOS 5.5.1 had
#
@@ -34,12 +34,12 @@
>>13 byte 0 \b, aspect ratio
>>13 byte 1 \b, resolution (DPI)
>>13 byte 2 \b, resolution (DPCM)
->>14 beshort x \b, density %dx
->>16 beshort x \b%d
->>4 beshort x \b, segment length %d
+>>14 ubeshort x \b, density %ux
+>>16 ubeshort x \b%u
+>>4 ubeshort x \b, segment length %u
# Next, show thumbnail info, if it exists:
->>18 byte !0 \b, thumbnail %dx
->>>19 byte x \b%d
+>>18 byte !0 \b, thumbnail %ux
+>>>19 byte x \b%u
>6 string Exif \b, Exif standard: [
>>12 indirect/r x
>>12 string x \b]
@@ -57,22 +57,22 @@
>0 beshort 0xFFC0
>>(2.S+2) use jpeg_segment
>>4 byte x \b, baseline, precision %d
->>7 beshort x \b, %dx
->>5 beshort x \b%d
+>>7 ubeshort x \b, %ux
+>>5 ubeshort x \b%u
>>9 byte x \b, components %d
>0 beshort 0xFFC1
>>(2.S+2) use jpeg_segment
>>4 byte x \b, extended sequential, precision %d
->>7 beshort x \b, %dx
->>5 beshort x \b%d
+>>7 ubeshort x \b, %ux
+>>5 ubeshort x \b%u
>>9 byte x \b, components %d
>0 beshort 0xFFC2
>>(2.S+2) use jpeg_segment
>>4 byte x \b, progressive, precision %d
->>7 beshort x \b, %dx
->>5 beshort x \b%d
+>>7 ubeshort x \b, %ux
+>>5 ubeshort x \b%u
>>9 byte x \b, components %d
# Define Huffman Tables
@@ -165,25 +165,40 @@
#45 beshort 0xff52
# JPEG extended range
+# Update: Joerg Jenderek 2023
# URL: http://fileformats.archiveteam.org/wiki/JPEG_XR
# Reference: https://www.itu.int/rec/T-REC-T.832
# http://mark0.net/download/triddefs_xml.7z/defs/b/bitmap-wmp.trid.xml
-# Note: called by TrID "JPEG XR bitmap"
+# http://mark0.net/download/triddefs_xml.7z/defs/b/bitmap-jxr.trid.xml
+# Note: called by TrID "JPEG XR bitmap" and "JPEG XR bitmap (WMPHOTO)"
+# verified as "JPEG XR" by XnView `nconvert -fullinfo *.jxr *.wdp`
+# partly by ImageMagick command `identify -verbose *.wdp`
+# and libjxr-tools `JxrDecApp -v -i example.wdp -o example.tif`
0 string \x49\x49\xbc
-# FILE_VERSION_ID; shall be equal to 1; other values are reserved for future use
+# FILE_VERSION_ID; shall be equal to 1; other values are reserved for future use and are unlike to appear
>3 byte 1
# FIRST_IFD_OFFSET; shall be an integer multiple of 2; so skip DROID fmt-590-signature-id-931.wdp
->>4 lelong%2 0 JPEG-XR
+>>4 lelong%2 0 JPEG-XR Image
#!:mime image/vnd.ms-photo
!:mime image/jxr
# NO example for HDP !
!:ext jxr/wdp/hdp
# MAYBE also WMP ?
#!:ext jxr/wdp/hdp/wmp
-# moved from ./images (version 1.205 ), merged and
-# partly verified by XnView `nconvert -info abydos.jxr FLOWER.wdp`
-# example: https://web.archive.org/web/20160403012904/
+# moved from ./images (version 1.243 ) and merged
+# example:
# http://shikino.co.jp/solution/upfile/FLOWER.wdp.zip
+# often GDI_SIGNATURE "WMPHOTO\0" at offset 90 like: FLOWER.wdp abydos.jxr SMALLTOMATO.wdp
+>90 bequad 0x574D50484F544F00
+>>0 use jxr-info
+# seldom no GDI_SIGNATURE WMPHOTO\0 at offset 90 like: example.wdp MARKET-3361-ipm-bg-DE-treat[1].wdp
+>90 bequad !0x574D50484F544F00
+# look for GDI_SIGNATURE WMPHOTO\0 at other offset
+>>4 search/3267/sb WMPHOTO\0
+>>>&-90 use jxr-info
+#
+0 name jxr-info
+# check for GDI_SIGNATURE that corresponds to "WMPHOTO\0"
>90 bequad 0x574D50484F544F00
>>98 byte&0x08 =0x08 \b, hard tiling
>>99 byte&0x80 =0x80 \b, tiling present
@@ -198,8 +213,8 @@
>>99 byte&0x38 0x30 \bLT
>>99 byte&0x38 0x38 \bLB
>>100 byte&0x80 =0x80 \b, short header
->>>102 beshort+1 x \b, %d
->>>104 beshort+1 x \bx%d
+>>>102 beshort+1 x \b, %u
+>>>104 beshort+1 x \bx%u
>>100 byte&0x80 =0x00 \b, long header
>>>102 belong+1 x \b, %x
>>>106 belong+1 x \bx%x