Keywords: JPEG Metadata Application Segments APP0 APP1 APP2 APP3 APP12 APP13 APP14 EXIF DCF XMP RDF Photoshop IRB IPTC DCMI JFIF

# The PHP JPEG Metadata Toolkit - Documentation

Go to Documentation - Home

## Changes List

Versions | File | Changes
--- | --- | ---
1.00 -> 1.01 | IPTC.php | Changed get_IPTC to return partial data when error occurs
1.00 -> 1.02 | Photoshop_IRB.php | Changed get_Photoshop_IRB to work with corrupted resource names which Photoshop can still read
1.02 -> 1.03 | Photoshop_IRB.php | Fixed put_Photoshop_IRB to output "Photoshop 3.0\x00" string with every APP13 segment, not just the first one
1.03 -> 1.04 | XMP.php | Changed put_IPTC to fix a bug preventing the correct insertion of a XMP block where none existed previously
1.04 -> 1.10 | XMP.php | Changed put_XMP_text to fix some array indexes which were missing qoutes
IPTC.php | Changed put_IPTC to check if the incoming IPTC block is valid Changed Interpret_IPTC_to_HTML, adding nl2br functions for each text field, so that multiline text displays properly
XML.php | Changed read_xml_array_from_text to fix problem that caused the whitespace (especially newlines) to be destroyed when converting xml text to an xml array
Photoshop_IRB.php | Changed get_Photoshop_IRB to fix processing of embedded resource names, after discovering that Photoshop does not process resource names according to the standard : "Adobe Photoshop 6.0 File Formats Specification, Version 6.0, Release 2, November 2000" This is an update to the change 1.00 -> 1.02, which was not fully correct Changed put_Photoshop_IRB to fix the writing of embedded resource name, to avoid creating blank resources, and to fix a problem causing the IRB block to be incorrectly positioned if no APP segments existed. Changed get_Photoshop_IPTC to initialise the output array correctly.
Unicode.php | Added the following functions: smart_HTML_Entities smart_htmlspecialchars HTML_UTF16_UnEscape HTML_UTF8_UnEscape Changed HTML_UTF8_Escape and HTML_UTF16_Escape to use smart_htmlspecialchars, so that characters which were already escaped would remain intact
JPEG.php | changed put_jpeg_header_data to check if the data being written exists
Example.php | Changed name of GET parameter from "filename" to "jpeg_fname" to stop script-kiddies using the google command "allinurl:*.php?filename=*" to find servers to attack
EXIF.php | added function get_EXIF_TIFF to allow extracting EXIF from a TIFF file
Photoshop_File_Info.php | New File - see documentation for more information
Edit_File_Info.php | New File - see documentation for more information
Edit_File_Info_Example.php | New File - see documentation for more information
Write_File_Info.php | New File - see documentation for more information
1.10 -> 1.11 | EXIF.php | Added functionality to allow decoding of XMP and Photoshop IRB information embedded within the EXIF data Added checks for http and ftp wrappers, as these are not supported Changed interpret_IFD to allow thumbnail links to work when toolkit is portable across directories
Makernotes/casio.php | Changed get_Casio_Makernote_Html to allow thumbnail links to work when toolkit is portable across directories
Makernotes/olympus.php | Changed get_Olympus_Makernote_Html to allow thumbnail links to work when toolkit is portable across directories
JFIF.php | Changed Interpret_JFXX_to_HTML to allow thumbnail links to work when toolkit is portable across directories
Photoshop_IRB.php | Moved code out of get_Photoshop_IRB into new function unpack_Photoshop_IRB_Data to allow reading of IRB blocks embedded within EXIF (for TIFF Files) Moved code out of put_Photoshop_IRB into new function pack_Photoshop_IRB_Data to allow writing of IRB blocks embedded within EXIF (for TIFF Files) Enabled the usage of $GLOBALS['HIDE_UNKNOWN_TAGS'] to hide unknown resources Changed Interpret_IRB_to_HTML to allow thumbnail links to work when toolkit is portable across directories
EXIF_Makernote.php | Changed makernotes directory definition to allow the toolkit to be portable across directories
EXIF_Tags.php | Added TIFF compression types ZIP, LZW and JPEG Added embedded XMP tag Added embedded Photoshop IRB tag Fixed GPS tags after testing
Example.php | Changed displayed toolkit version numbers to reference Toolkit_Version.php Changed this example file to be easily relocatable
TIFFExample.php | Changed displayed toolkit version numbers to reference Toolkit_Version.php
Write_File_Info.php | Changed displayed toolkit version numbers to reference Toolkit_Version.php Changed error reporting to no errors Removed limitation on file being in current directory
Edit_File_Info_Example.php | Changed displayed toolkit version numbers to reference Toolkit_Version.php
Photoshop_File_Info.php | Changed displayed toolkit version numbers to reference Toolkit_Version.php
Edit_File_Info.php | Changed displayed toolkit version numbers to reference Toolkit_Version.php
get_ps_thumb.php | Added support for Photoshop IRB thumbnails which are embedded within EXIF information (used in TIFF files)
Toolkit_Version.php | New File - Added file to provide a single storage place for current version number
pjmt_utils.php | New File - Added file to provide utility functions for the toolkit