Some time ago I needed to read IPTC info from jpeg files, and I ended up with a function to read these fields from JPEG header. Another approach is to use ImageMagick to read the exif/iptc from jpeg/tiff. Here is the
function, I hope it'll be useful:
function get_IPTC($path) {
$size = GetImageSize ($path, &$info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
if (is_array($iptc)) {
$IPTC_data=array( "Version" => $iptc["2#000"][0], # Max 2 octets, binary number
"Title" => $iptc["2#005"][0], # Max 65 octets, non-repeatable, alphanumeric
"Urgency" => $iptc["2#010"][0], # Max 1 octet, non-repeatable, numeric, 1 - High, 8 - Low
"Category" => $iptc["2#015"][0], # Max 3 octets, non-repeatable, alpha
"SubCategories" => $iptc["2#020"], # Max 32 octets, repeatable, alphanumeric
"Keywords" => $iptc["2#025"], # Max 64 octets, repeatable, alphanumeric
"Instructions" => $iptc["2#040"][0], # Max 256 octets, non-repeatable, alphanumeric
"CreationDate" => $iptc["2#055"][0], # Max 8 octets, non-repeatable, numeric, YYYYMMDD
"CreationTime" => $iptc["2#060"][0], # Max 11 octets, non-repeatable, numeric+-, HHMMSS(+|-)HHMM
"ProgramUsed" => $iptc["2#065"][0], # Max 32 octets, non-repeatable, alphanumeric
"Author" => $iptc["2#080"][0], #!Max 32 octets, repeatable, alphanumeric
"Position" => $iptc["2#085"][0], #!Max 32 octets, repeatable, alphanumeric
"City" => $iptc["2#090"][0], # Max 32 octets, non-repeatable, alphanumeric
"State" => $iptc["2#095"][0], # Max 32 octets, non-repeatable, alphanumeric
"Country" => $iptc["2#101"][0], # Max 64 octets, non-repeatable, alphanumeric
"TransmissionReference" => $iptc["2#103"][0], # Max 32 octets, non-repeatable, alphanumeric
"Headline" => $iptc["2#105"][0], # Max 256 octets, non-repeatable, alphanumeric
"Credit" => $iptc["2#110"][0], # Max 32 octets, non-repeatable, alphanumeric
"Source" => $iptc["2#115"][0], # Max 32 octets, non-repeatable, alphanumeric
"Copyright" => $iptc["2#116"][0], # Max 128 octets, non-repeatable, alphanumeric
"Caption" => $iptc["2#120"][0], # Max 2000 octets, non-repeatable, alphanumeric
"CaptionWriter" => $iptc["2#122"][0] # Max 32 octets, non-repeatable, alphanumeric
);
} else $IPTC_data=array();
}
return $IPTC_data;
}
Regards, Vahan
Binay Agarwal wrote:
Hi everybody
I need to extract the information (EXIF and IPTC) from jpeg/tiff image files. After that i have to allow my client to modify and put them back in jpeg/tiff files.
I want to know whether php has got built-in support in terms of libraries to achieve the goal or i will have to load some external modules/software to do the same. In case external which all modules/software to refer?
Please let me know.
Thanks
Binay
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php