[Linpha-cvs] SF.net SVN: linpha: [4675] trunk/linpha2
Status: Inactive
Brought to you by:
bzrudi
From: <bz...@us...> - 2007-02-13 16:30:48
|
Revision: 4675 http://svn.sourceforge.net/linpha/?rev=4675&view=rev Author: bzrudi Date: 2007-02-13 08:30:32 -0800 (Tue, 13 Feb 2007) Log Message: ----------- Huge rework of metadata stuff and in particular XMP. Modified Paths: -------------- trunk/linpha2/ChangeLog trunk/linpha2/admin/maintenance_import.php trunk/linpha2/admin/metadata_define.php trunk/linpha2/admin/metadata_define_post.php trunk/linpha2/docs/dev/external_libraries.txt trunk/linpha2/lib/classes/linpha.imgview.class.php trunk/linpha2/lib/classes/linpha.metadata.class.php trunk/linpha2/lib/classes/pjmt/XMP.php trunk/linpha2/lib/include/File_Info_Show.php Modified: trunk/linpha2/ChangeLog =================================================================== --- trunk/linpha2/ChangeLog 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/ChangeLog 2007-02-13 16:30:32 UTC (rev 4675) @@ -1,3 +1,10 @@ +2007-02-13 bzrudi + * huge rework of the metadata stuff and in particular XMP. Do not expect to + see something, I just prepared alle things to work together. + We will have a new XMP relation which holds XMP seperated from IPTC. + At least the basic xmp table should be created, no read of data and still + very incomplete + 2007-02-02 bzrudi * fixed wrong MetaDataIndex instance, should read LinMetaDataIndex. As reported by sx03 in LinPHA2 Forum. Thanks! Modified: trunk/linpha2/admin/maintenance_import.php =================================================================== --- trunk/linpha2/admin/maintenance_import.php 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/admin/maintenance_import.php 2007-02-13 16:30:32 UTC (rev 4675) @@ -286,6 +286,7 @@ $MetaData->saveData( 'iptc', $full_filename,$md5sum ); break; case 'xmp': + $MetaData->saveData( 'xmp', $full_filename,$md5sum ); break; } Modified: trunk/linpha2/admin/metadata_define.php =================================================================== --- trunk/linpha2/admin/metadata_define.php 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/admin/metadata_define.php 2007-02-13 16:30:32 UTC (rev 4675) @@ -20,8 +20,9 @@ $array_menu = Array( 'own' => Array('name' => 'Own fields', 'link' => 'metadata_define_own'), 'adddata' => Array('name' => 'Add select data (set Category names)', 'link' => 'metadata_define_adddata'), - 'exif' => Array('name' => 'Exif fields', 'link' => 'metadata_define_exif'), - 'iptc' => Array('name' => 'Iptc fields', 'link' => 'metadata_define_iptc') + 'exif' => Array('name' => 'EXIF fields', 'link' => 'metadata_define_exif'), + 'iptc' => Array('name' => 'IPTC fields', 'link' => 'metadata_define_iptc'), + 'xmp' => Array('name' => 'XMP fields', 'link' => 'metadata_define_xmp') ); LinAdmin::printAdminMenu($array_menu,$cat3); @@ -42,17 +43,32 @@ show_add_data(); break; case 'exif': - echo i18n("The exif data are normally automatically created by the digital camera. These values may not be edited whitin LinPHA."); - echo '<br /><br />'; - echo i18n("You probably may not choose all exif tags, because the database table would get to big."); + echo i18n("EXIF data is usually created by the any Digital Camera. " . + "These values will be indexed for searching and displaying them, " . + "but can't be edited with LinPHA."); + echo '<br />'; + echo i18n("Hint: You should't choose all available EXIF tags " . + "because the database table may get to large (MySQL) and therefore " . + "could result in an error."); echo '<br /><br /><br />'; - show_exif_iptc(); + show_metadata(); break; case 'iptc': + echo i18n("IPTC data is usually not available by default. " . + "It needs to be filled up either with LinPHA, " . + "or with any external program which allows IPTC editing like Photoshop. " . + "IPTC is a standard within professional Photographer business."); + echo '<br /><br />'; + show_metadata(); + break; + case 'xmp': - echo i18n("The iptc/xmp data are normally not created by default. They need to be filled in within LinPHA or with an external program like photoshop. The iptc/xmp tags are very common in the photographer industry."); + echo i18n("XMP data is usually not available by default. " . + "It needs to be filled up either with LinPHA, " . + "or with any external program which allows XMP editing like Photoshop. " . + "XMP is standard within professional Photographer business."); echo '<br /><br />'; - show_exif_iptc(); + show_metadata(); break; } @@ -259,7 +275,7 @@ } } -function show_exif_iptc() +function show_metadata() { $MetaData = new LinMetaDataAdmin(); $MetaData->setFields( $GLOBALS['cat3'] ); @@ -272,9 +288,9 @@ <div align="center"> <form action="./?cat=metadata_define_<?php echo $GLOBALS['cat3']; ?>" method="POST"> - <input type="radio" name="exifiptc_enable" value="1"<?php echo ($enabled ? ' checked="checked"' : ''); ?> />Enable - <input type="radio" name="exifiptc_enable" value="0"<?php echo ($enabled ? '' : ' checked="checked"'); ?> />Disable - <input type="hidden" name="cmd" value="update_exifiptc" /> + <input type="radio" name="metadata_config_enable" value="1"<?php echo ($enabled ? ' checked="checked"' : ''); ?> />Enable + <input type="radio" name="metadata_config_enable" value="0"<?php echo ($enabled ? '' : ' checked="checked"'); ?> />Disable + <input type="hidden" name="cmd" value="update_config_metadata" /> <input type="submit" name="name" value="update" /> </form> <br /><br /> @@ -312,7 +328,7 @@ </td> </tr> </table> - <input type="hidden" name="cmd" value="create_exifiptc" /> + <input type="hidden" name="cmd" value="create_metadata_table" /> <input type="submit" name="name" value="Submit" /> </form> Modified: trunk/linpha2/admin/metadata_define_post.php =================================================================== --- trunk/linpha2/admin/metadata_define_post.php 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/admin/metadata_define_post.php 2007-02-13 16:30:32 UTC (rev 4675) @@ -77,17 +77,17 @@ $linpha->db->Execute("UPDATE ".LIN_PREFIX."meta_category SET " . "name = '".LinSql::linAddslashes($_POST['new_name'])."', ". "isprivate = '".$isprivate."' ". - "WHERE id = '".LinSql::linAddslashes($_POST['id'])."'"); + "WHERE id = '".LinSql::linAddslashes($_POST['id'])."'"); break; case 'delete_category': $linpha->db->Execute("DELETE FROM ".LIN_PREFIX."meta_category WHERE id = '".LinSql::linAddslashes($_POST['id'])."'"); break; -case 'update_exifiptc': - $linpha->sql->config->updateConfig('sys_image_'.$cat3,$_POST['exifiptc_enable']); +case 'update_config_metadata': + $linpha->sql->config->updateConfig('sys_image_'.$cat3,$_POST['metadata_config_enable']); $linpha->sql->config->reloadConfig(); break; -case 'create_exifiptc': +case 'create_metadata_table': if( ! isset($_POST['selected_fields'])) { $_POST['selected_fields'] = Array(); @@ -98,6 +98,9 @@ } elseif($cat3 == 'iptc') { $linpha->db->Execute("DROP TABLE ".LIN_PREFIX."meta_iptc"); $linpha->db->Execute( LinMetadataAdmin::createIptcTable( $_POST['selected_fields'] ) ); + } elseif($cat3 == 'xmp') { + $linpha->db->Execute("DROP TABLE ".LIN_PREFIX."meta_xmp"); + $linpha->db->Execute( LinMetadataAdmin::createXmpTable( $_POST['selected_fields'] ) ); } break; } Modified: trunk/linpha2/docs/dev/external_libraries.txt =================================================================== --- trunk/linpha2/docs/dev/external_libraries.txt 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/docs/dev/external_libraries.txt 2007-02-13 16:30:32 UTC (rev 4675) @@ -43,6 +43,9 @@ "RecName" => @$GLOBALS[ "IPTC_Entry_Names" ][ $iptctype ], "RecDesc" => @$GLOBALS[ "IPTC_Entry_Descriptions" ][ $iptctype ], ---- + + XMP.php + - add Iptc4xmpCore Segment entries File_Info_Edit.php (located in /lib/include) - base file from "Edit_File_Info.php", a lot of changes... Modified: trunk/linpha2/lib/classes/linpha.imgview.class.php =================================================================== --- trunk/linpha2/lib/classes/linpha.imgview.class.php 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/lib/classes/linpha.imgview.class.php 2007-02-13 16:30:32 UTC (rev 4675) @@ -1313,7 +1313,7 @@ */ function viewImgStoreImageInformation() { - $array_meta = array('exif','iptc'); + $array_meta = array('exif','iptc','xmp'); foreach($array_meta AS $value) { if( !isset($MetaData) ) @@ -1322,7 +1322,7 @@ } /** - * read exif/iptc from file if no entry + * read exif/iptc/xmp from file if no entry */ if($GLOBALS['linpha']->sql->config->value['sys_image_'.$value]) { Modified: trunk/linpha2/lib/classes/linpha.metadata.class.php =================================================================== --- trunk/linpha2/lib/classes/linpha.metadata.class.php 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/lib/classes/linpha.metadata.class.php 2007-02-13 16:30:32 UTC (rev 4675) @@ -183,6 +183,7 @@ } } break; + //TODO add XMP } if($value != '') @@ -356,6 +357,56 @@ return $str; } + function createXmpTable($array='') + { + if(empty($array)) + { + $array = Array(); + } + + if(LIN_DB_TYPE == "mysql") + { + $str = "CREATE TABLE ".LIN_PREFIX."meta_xmp (". + "md5sum VARCHAR(32) NOT NULL, "; + + foreach($array AS $key=>$value) + { + $str .= LinSql::linAddslashes(strtolower($value))." VARCHAR(255), "; + } + $str .= "PRIMARY KEY (md5sum), "; + $str .= "KEY (md5sum) )"; + } + elseif(LIN_DB_TYPE == "sqlite") + { + $str = "CREATE TABLE ".LIN_PREFIX."meta_xmp (". + "md5sum VARCHAR(32) PRIMARY KEY NOT NULL, "; + foreach($array AS $key=>$value) + { + $str .= strtolower($value)." VARCHAR(255), "; + } + /** + * remove last 2 signs (the comma and the space) + */ + $str = substr($str,0,strlen($str)-2).")"; + } + elseif(LIN_DB_TYPE == "postgres") + { + $str = "CREATE TABLE ".LIN_PREFIX."meta_xmp (". + "md5sum VARCHAR(32) NOT NULL, "; + + foreach($array AS $key=>$value) + { + $str .= strtolower($value)." VARCHAR(255), "; + } + + /** + * remove last 2 signs (the comma and the space) + */ + $str = substr($str,0,strlen($str)-2).")"; + } + return $str; + } + } // end class LinMetaDataAdmin @@ -365,7 +416,8 @@ class LinMetaDataIndex extends LinMetaData { /** - * wrapper function for saveExifData and saveIptcDate for easier access + * wrapper function for saveExifData, saveIptcData and saveXmpData + * for easier access */ function saveData($what,$filename,$md5sum) { @@ -395,6 +447,9 @@ case 'iptc': $this->saveIptcData($filename,$md5sum); break; + case 'xmp': + $this->saveXmpData($filename,$md5sum); + break; } } } @@ -562,7 +617,121 @@ "VALUES (".$str_values.")"); } + /** + * store XMP data in DB + */ + function saveXmpData($filename, $md5sum) + { + include_once(LINPHA_DIR.'/lib/classes/pjmt/XMP.php'); + include_once(LINPHA_DIR.'/lib/classes/pjmt/JPEG.php'); + + $str_columns = "md5sum, "; + $str_values = "'".$md5sum."', "; + + $jpeg_header_data = get_jpeg_header_data($filename); + $XMP_array = read_XMP_array_from_text( get_XMP_text( $jpeg_header_data ) ); + + // Check if the XMP tree structure array is valid + if ( $XMP_array !== FALSE ) + { + // Check if there is a rdf:RDF tag at either the first or second level + if ( ( $XMP_array[0]['tag'] == "x:xapmeta" ) && ( $XMP_array[0]['children'][0]['tag'] == "rdf:RDF" ) ) + { + // RDF found at second level - Save it's position + $RDF_Contents = &$XMP_array[0]['children'][0]['children']; + } + else if ( ( $XMP_array[0]['tag'] == "x:xmpmeta" ) && ( $XMP_array[0]['children'][0]['tag'] == "rdf:RDF" ) ) + { + // RDF found at second level - Save it's position + $RDF_Contents = &$XMP_array[0]['children'][0]['children']; + } + else if ( $XMP_array[0]['tag'] == "rdf:RDF" ) + { + // RDF found at first level - Save it's position + $RDF_Contents = &$XMP_array[0]['children']; + } + else + { + // RDF section not found - abort + return ""; + } + + // Cycle through each of the items in the RDF tree array, and process them + foreach ($RDF_Contents as $RDF_Item) + { + // Check if this element has sub-items + if ( array_key_exists( 'children', $RDF_Item ) ) + { + // Cycle through each of the sub-items + foreach( $RDF_Item['children'] as $child_item ) + { + /** + * Get user defined fields for xmp + */ + foreach($this->defined_fields['xmp'] AS $key=>$value) + { + if( !empty(LinMetaData::$Tags['xmp'][$key]['path']) ) + { + + /** + * Field hit! e.g. image contains data user want's to + * have in DB later + */ + if(LinMetaData::$Tags['xmp'][$key]['path'] == $child_item['tag']) + { + /** + * If value is empty, it does not necesarry mean there + * is no data, so we have to cycle through, this + * is a real mess ;-) + */ + if(!isset($child_item['value'])) + { + if(is_array($child_item['children'])) + { + /** + * We need to get value for rdf:li which may be an + * order or unorder list, or even a list of alternatives, bah! + * However we handle them all the same + */ + $child_item['value'] = $child_item['children'][0]['children'][0]['value']; + + } + } + + $str_columns .= LinMetaData::$Tags['xmp'][$key]['pathkey'].', '; + $str_values .= "'".trim( $child_item['value']).""; + $str_values .= "', "; + + break; + + } + } + + } + } + } + } + + /** + * remove last two signs (the comma and the space) which we added to much + */ + $str_columns = substr($str_columns,0,strlen($str_columns)-2); + $str_values = substr($str_values,0,strlen($str_values)-2); + + + $GLOBALS['linpha']->db->Execute("INSERT into ".LIN_PREFIX."meta_xmp (".$str_columns.") ". + "VALUES (".$str_values.")"); + } + else + { + //linSysLog( i18n("NO XMP FOUND:" .' '. $filename) ); + //linLog( LOG_TYPE_META, ERROR, 'meta_xmp', "ERROR:" .' '. $filename ); + //exit(); + } + } + + /** * Autorotate Images via EXIF tag * Most Images contain an orientation tag which shows if and how to rotate * the images @@ -1028,37 +1197,37 @@ // A. Tags relating to image data structure 'imagewidth' => array('name' => 'Image Width', 'pathkey' => 'ImageWidth', 'pathvalue' => ''), 'imagelength' => array('name' => 'Image Length', 'pathkey' => 'ImageLength', 'pathvalue' => ''), - 'bitspersample' => array('name' => 'Bits Per Sample', 'pathkey' => 'BitsPerSample', 'pathvalue' => ''), + 'bitspersample' => array('name' => 'Bits Per Sample', 'pathkey' => 'BitsPerSample', 'pathvalue' => ''), 'compression' => array('name' => 'Compression', 'pathkey' => 'Compression', 'pathvalue' => ''), - 'photometricinterpretation' => array('name' => 'Photometric Interpretation', 'pathkey' => 'PhotometricInterpretation', 'pathvalue' => ''), + 'photometricinterpretation' => array('name' => 'Photometric Interpretation', 'pathkey' => 'PhotometricInterpretation', 'pathvalue' => ''), 'orientation' => array('name' => 'Orientation', 'pathkey' => 'Orientation', 'pathvalue' => '0/274'), 'samplesperpixel' => array('name' => 'Samples Per Pixel', 'pathkey' => 'SamplesPerPixel', 'pathvalue' => ''), - 'planarconfiguration' => array('name' => 'Planar Configuration', 'pathkey' => 'PlanarConfiguration', 'pathvalue' => ''), - 'ycbcrsubsampling' => array('name' => 'YCbCr Sub Sampling', 'pathkey' => 'YCbCrSubSampling', 'pathvalue' => ''), - 'ycbcrpositioning' => array('name' => 'YCbCr Positioning', 'pathkey' => 'YCbCrPositioning', 'pathvalue' => '0/531'), + 'planarconfiguration' => array('name' => 'Planar Configuration', 'pathkey' => 'PlanarConfiguration', 'pathvalue' => ''), + 'ycbcrsubsampling' => array('name' => 'YCbCr Sub Sampling', 'pathkey' => 'YCbCrSubSampling', 'pathvalue' => ''), + 'ycbcrpositioning' => array('name' => 'YCbCr Positioning', 'pathkey' => 'YCbCrPositioning', 'pathvalue' => '0/531'), 'xresolution' => array('name' => 'X Resolution', 'pathkey' => 'XResolution', 'pathvalue' => '0/282'), 'yresolution' => array('name' => 'Y Resolution', 'pathkey' => 'YResolution', 'pathvalue' => '0/283'), 'resolutionunit' => array('name' => 'Resolution Unit', 'pathkey' => 'ResolutionUnit', 'pathvalue' => '0/296'), // B. Tags relating to recording offset - 'stripoffsets' => array('name' => 'Strip Offsets', 'pathkey' => 'StripOffsets', 'pathvalue' => ''), - 'rowsperstrip' => array('name' => 'Rows Per Strip', 'pathkey' => 'RowsPerStrip', 'pathvalue' => ''), + 'stripoffsets' => array('name' => 'Strip Offsets', 'pathkey' => 'StripOffsets', 'pathvalue' => ''), + 'rowsperstrip' => array('name' => 'Rows Per Strip', 'pathkey' => 'RowsPerStrip', 'pathvalue' => ''), 'stripbytecounts' => array('name' => 'Strip Byte Counts', 'pathkey' => 'StripByteCounts', 'pathvalue' => ''), - 'jpeginterchangeformat' => array('name' => 'JPEG Interchange Format', 'pathkey' => 'JPEGInterchangeFormat', 'pathvalue' => ''), - 'jpeginterchangeformatlength' => array('name' => 'JPEG Interchange Format Length', 'pathkey' => 'JPEGInterchangeFormatLength', 'pathvalue' => ''), + 'jpeginterchangeformat' => array('name' => 'JPEG Interchange Format', 'pathkey' => 'JPEGInterchangeFormat', 'pathvalue' => ''), + 'jpeginterchangeformatlength'=> array('name' => 'JPEG Interchange Format Length', 'pathkey' => 'JPEGInterchangeFormatLength', 'pathvalue' => ''), // C. Tags relating to image data characteristics - 'transferfunction' => array('name' => 'Transfer Function', 'pathkey' => 'TransferFunction', 'pathvalue' => ''), + 'transferfunction' => array('name' => 'Transfer Function', 'pathkey' => 'TransferFunction', 'pathvalue' => ''), 'whitepoint' => array('name' => 'White Point', 'pathkey' => 'WhitePoint', 'pathvalue' => ''), - 'primarychromaticities' => array('name' => 'Primary Chromaticities', 'pathkey' => 'PrimaryChromaticities', 'pathvalue' => ''), - 'ycbcrcoefficients' => array('name' => 'YCbCr Coefficients', 'pathkey' => 'YCbCrCoefficients', 'pathvalue' => ''), - 'referenceblackwhite' => array('name' => 'Reference Black White', 'pathkey' => 'ReferenceBlackWhite', 'pathvalue' => ''), + 'primarychromaticities' => array('name' => 'Primary Chromaticities', 'pathkey' => 'PrimaryChromaticities', 'pathvalue' => ''), + 'ycbcrcoefficients' => array('name' => 'YCbCr Coefficients', 'pathkey' => 'YCbCrCoefficients', 'pathvalue' => ''), + 'referenceblackwhite' => array('name' => 'Reference Black White', 'pathkey' => 'ReferenceBlackWhite', 'pathvalue' => ''), // D. Other tags 'datetime' => array('name' => 'Date Time', 'pathkey' => 'DateTime', 'pathvalue' => '0/306'), - 'imagedescription' => array('name' => 'Image Description', 'pathkey' => 'ImageDescription', 'pathvalue' => '0/270'), + 'imagedescription' => array('name' => 'Image Description', 'pathkey' => 'ImageDescription', 'pathvalue' => '0/270'), 'make' => array('name' => 'Make', 'pathkey' => 'Make', 'pathvalue' => '0/271'), - 'model' => array('name' => 'Model', 'pathkey' => 'Model', 'pathvalue' => '0/272'), + 'model' => array('name' => 'Model', 'pathkey' => 'Model', 'pathvalue' => '0/272'), 'software' => array('name' => 'Software', 'pathkey' => 'Software', 'pathvalue' => '0/305'), 'artist' => array('name' => 'Artist', 'pathkey' => 'Artist', 'pathvalue' => '0/315'), 'copyright' => array('name' => 'Copyright', 'pathkey' => 'Copyright', 'pathvalue' => '0/33432'), @@ -1082,72 +1251,72 @@ 'usercomment' => array('name' => 'User Comment', 'pathkey' => 'UserComment', 'pathvalue' => '0/34665/Data/0/37510'), // E. Tag Relating to Related File Information - 'relatedsoundfile' => array('name' => 'Related Sound File', 'pathkey' => 'RelatedSoundFile', 'pathvalue' => ''), + 'relatedsoundfile' => array('name' => 'Related Sound File', 'pathkey' => 'RelatedSoundFile', 'pathvalue' => ''), // F. Tags Relating to Date and Time - 'datetimeoriginal' => array('name' => 'Date Time Original', 'pathkey' => 'DateTimeOriginal', 'pathvalue' => '0/34665/Data/0/36867'), - 'datetimedigitized' => array('name' => 'Date Time Digitized', 'pathkey' => 'DateTimeDigitized', 'pathvalue' => '0/34665/Data/0/36868'), + 'datetimeoriginal' => array('name' => 'Date Time Original', 'pathkey' => 'DateTimeOriginal', 'pathvalue' => '0/34665/Data/0/36867'), + 'datetimedigitized' => array('name' => 'Date Time Digitized', 'pathkey' => 'DateTimeDigitized', 'pathvalue' => '0/34665/Data/0/36868'), 'subsectime' => array('name' => 'Sub Sec Time', 'pathkey' => 'SubSecTime', 'pathvalue' => ''), 'subsectimeoriginal' => array('name' => 'Sub Sec Time Original', 'pathkey' => 'SubSecTimeOriginal', 'pathvalue' => ''), 'subsectimedigitized' => array('name' => 'Sub Sec Time Digitized', 'pathkey' => 'SubSecTimeDigitized', 'pathvalue' => ''), // G. Tags Relating to Picture-Taking Conditions - 'exposuretime' => array('name' => 'Exposure Time', 'pathkey' => 'ExposureTime', 'pathvalue' => '0/34665/Data/0/33434'), + 'exposuretime' => array('name' => 'Exposure Time', 'pathkey' => 'ExposureTime', 'pathvalue' => '0/34665/Data/0/33434'), 'fnumber' => array('name' => 'F Number', 'pathkey' => 'FNumber', 'pathvalue' => '0/34665/Data/0/33437'), 'exposureprogram' => array('name' => 'Exposure Program', 'pathkey' => 'ExposureProgram', 'pathvalue' => '0/34665/Data/0/34850'), - 'spectralsensitivity' => array('name' => 'Spectral Sensitivity', 'pathkey' => 'SpectralSensitivity', 'pathvalue' => ''), + 'spectralsensitivity' => array('name' => 'Spectral Sensitivity', 'pathkey' => 'SpectralSensitivity', 'pathvalue' => ''), 'isospeedratings' => array('name' => 'ISO Speed Ratings', 'pathkey' => 'ISOSpeedRatings', 'pathvalue' => '0/34665/Data/0/34855'), 'oecf' => array('name' => 'OECF', 'pathkey' => 'OECF', 'pathvalue' => ''), - 'shutterspeedvalue' => array('name' => 'Shutter Speed Value', 'pathkey' => 'ShutterSpeedValue', 'pathvalue' => '0/34665/Data/0/37377'), - 'aperturevalue' => array('name' => 'Aperture Value', 'pathkey' => 'ApertureValue', 'pathvalue' => '0/34665/Data/0/37378'), + 'shutterspeedvalue' => array('name' => 'Shutter Speed Value', 'pathkey' => 'ShutterSpeedValue', 'pathvalue' => '0/34665/Data/0/37377'), + 'aperturevalue' => array('name' => 'Aperture Value', 'pathkey' => 'ApertureValue', 'pathvalue' => '0/34665/Data/0/37378'), 'brightnessvalue' => array('name' => 'Brightness Value', 'pathkey' => 'BrightnessValue', 'pathvalue' => '0/34665/Data/0/37379'), - 'exposurebiasvalue' => array('name' => 'Exposure Bias Value', 'pathkey' => 'ExposureBiasValue', 'pathvalue' => '0/34665/Data/0/37380'), - 'maxaperturevalue' => array('name' => 'MaxAperture Value', 'pathkey' => 'MaxApertureValue', 'pathvalue' => '0/34665/Data/0/37381'), + 'exposurebiasvalue' => array('name' => 'Exposure Bias Value', 'pathkey' => 'ExposureBiasValue', 'pathvalue' => '0/34665/Data/0/37380'), + 'maxaperturevalue' => array('name' => 'MaxAperture Value', 'pathkey' => 'MaxApertureValue', 'pathvalue' => '0/34665/Data/0/37381'), 'subjectdistance' => array('name' => 'Subject Distance', 'pathkey' => 'SubjectDistance', 'pathvalue' => '0/34665/Data/0/37382'), - 'meteringmode' => array('name' => 'Metering Mode', 'pathkey' => 'MeteringMode', 'pathvalue' => '0/34665/Data/0/37383'), + 'meteringmode' => array('name' => 'Metering Mode', 'pathkey' => 'MeteringMode', 'pathvalue' => '0/34665/Data/0/37383'), 'lightsource' => array('name' => 'Light Source', 'pathkey' => 'LightSource', 'pathvalue' => '0/34665/Data/0/37384'), - 'flash' => array('name' => 'Flash', 'pathkey' => 'Flash', 'pathvalue' => '0/34665/Data/0/37385'), + 'flash' => array('name' => 'Flash', 'pathkey' => 'Flash', 'pathvalue' => '0/34665/Data/0/37385'), 'focallength' => array('name' => 'Focal Length', 'pathkey' => 'FocalLength', 'pathvalue' => '0/34665/Data/0/37386'), 'subjectarea' => array('name' => 'Subject Area', 'pathkey' => 'SubjectArea', 'pathvalue' => ''), 'flashenergy' => array('name' => 'Flash Energy', 'pathkey' => 'FlashEnergy', 'pathvalue' => ''), - 'spatialfrequencyresponse' => array('name' => 'Spatial Frequency Response', 'pathkey' => 'SpatialFrequencyResponse', 'pathvalue' => ''), - 'focalplanexresolution' => array('name' => 'Focal Plane X Resolution', 'pathkey' => 'FocalPlaneXResolution', 'pathvalue' => '0/34665/Data/0/41486'), - 'focalplaneyresolution' => array('name' => 'Foca Plane Y Resolution', 'pathkey' => 'FocalPlaneYResolution', 'pathvalue' => '0/34665/Data/0/41487'), - 'focalplaneresolutionunit' => array('name' => 'Focal Plane Resolution Unit', 'pathkey' => 'FocalPlaneResolutionUnit', 'pathvalue' => '0/34665/Data/0/41488'), + 'spatialfrequencyresponse' => array('name' => 'Spatial Frequency Response', 'pathkey' => 'SpatialFrequencyResponse', 'pathvalue' => ''), + 'focalplanexresolution' => array('name' => 'Focal Plane X Resolution', 'pathkey' => 'FocalPlaneXResolution', 'pathvalue' => '0/34665/Data/0/41486'), + 'focalplaneyresolution' => array('name' => 'Foca Plane Y Resolution', 'pathkey' => 'FocalPlaneYResolution', 'pathvalue' => '0/34665/Data/0/41487'), + 'focalplaneresolutionunit' => array('name' => 'Focal Plane Resolution Unit', 'pathkey' => 'FocalPlaneResolutionUnit', 'pathvalue' => '0/34665/Data/0/41488'), 'subjectlocation' => array('name' => 'Subject Location', 'pathkey' => 'SubjectLocation', 'pathvalue' => ''), - 'exposureindex' => array('name' => 'Exposure Index', 'pathkey' => 'ExposureIndex', 'pathvalue' => ''), - 'sensingmethod' => array('name' => 'Sensing Method', 'pathkey' => 'SensingMethod', 'pathvalue' => '0/34665/Data/0/41495'), + 'exposureindex' => array('name' => 'Exposure Index', 'pathkey' => 'ExposureIndex', 'pathvalue' => ''), + 'sensingmethod' => array('name' => 'Sensing Method', 'pathkey' => 'SensingMethod', 'pathvalue' => '0/34665/Data/0/41495'), 'filesource' => array('name' => 'File Source', 'pathkey' => 'FileSource', 'pathvalue' => '0/34665/Data/0/41728'), - 'scenetype' => array('name' => 'Scene Type', 'pathkey' => 'SceneType', 'pathvalue' => '0/34665/Data/0/41729'), + 'scenetype' => array('name' => 'Scene Type', 'pathkey' => 'SceneType', 'pathvalue' => '0/34665/Data/0/41729'), 'cfapattern' => array('name' => 'CFA Pattern', 'pathkey' => 'CFAPattern', 'pathvalue' => ''), 'customrendered' => array('name' => 'Custom Rendered', 'pathkey' => 'CustomRendered', 'pathvalue' => '0/34665/Data/0/41985'), - 'exposuremode' => array('name' => 'Exposure Mode', 'pathkey' => 'ExposureMode', 'pathvalue' => '0/34665/Data/0/41986'), - 'whitebalance' => array('name' => 'White Balance', 'pathkey' => 'WhiteBalance', 'pathvalue' => '0/34665/Data/0/41987'), - 'digitalzoomratio' => array('name' => 'Digital Zoom Ratio', 'pathkey' => 'DigitalZoomRatio', 'pathvalue' => '0/34665/Data/0/41988'), - 'focallengthin35mmfilm' => array('name' => 'Focal Length In 35mm Film', 'pathkey' => 'FocalLengthIn35mmFilm', 'pathvalue' => ''), - 'scenecapturetype' => array('name' => 'Scene Capture Type', 'pathkey' => 'SceneCaptureType', 'pathvalue' => '0/34665/Data/0/41990'), + 'exposuremode' => array('name' => 'Exposure Mode', 'pathkey' => 'ExposureMode', 'pathvalue' => '0/34665/Data/0/41986'), + 'whitebalance' => array('name' => 'White Balance', 'pathkey' => 'WhiteBalance', 'pathvalue' => '0/34665/Data/0/41987'), + 'digitalzoomratio' => array('name' => 'Digital Zoom Ratio', 'pathkey' => 'DigitalZoomRatio', 'pathvalue' => '0/34665/Data/0/41988'), + 'focallengthin35mmfilm' => array('name' => 'Focal Length In 35mm Film', 'pathkey' => 'FocalLengthIn35mmFilm', 'pathvalue' => ''), + 'scenecapturetype' => array('name' => 'Scene Capture Type', 'pathkey' => 'SceneCaptureType', 'pathvalue' => '0/34665/Data/0/41990'), 'gaincontrol' => array('name' => 'Gain Control', 'pathkey' => 'GainControl', 'pathvalue' => '0/34665/Data/0/41991'), 'contrast' => array('name' => 'Contrast', 'pathkey' => 'Contrast', 'pathvalue' => '0/34665/Data/0/41992'), 'saturation' => array('name' => 'Saturation', 'pathkey' => 'Saturation', 'pathvalue' => '0/34665/Data/0/41993'), - 'sharpness' => array('name' => 'Sharpness', 'pathkey' => 'Sharpness', 'pathvalue' => '0/34665/Data/0/41994'), - 'devicesettingdescription' => array('name' => 'Device Setting Description', 'pathkey' => 'DeviceSettingDescription', 'pathvalue' => ''), - 'subjectdistancerange' => array('name' => 'Subject Distance Range', 'pathkey' => 'SubjectDistanceRange', 'pathvalue' => ''), + 'sharpness' => array('name' => 'Sharpness', 'pathkey' => 'Sharpness', 'pathvalue' => '0/34665/Data/0/41994'), + 'devicesettingdescription' => array('name' => 'Device Setting Description', 'pathkey' => 'DeviceSettingDescription', 'pathvalue' => ''), + 'subjectdistancerange' => array('name' => 'Subject Distance Range', 'pathkey' => 'SubjectDistanceRange', 'pathvalue' => ''), // H. Other Tags - 'imageuniqueid' => array('name' => 'Image Unique ID', 'pathkey' => 'ImageUniqueID', 'pathvalue' => ''), + 'imageuniqueid' => array('name' => 'Image Unique ID', 'pathkey' => 'ImageUniqueID', 'pathvalue' => ''), // GPS Attribute Information // A. Tags Relating to GPS - 'gpsversionid' => array('name' => 'GPS Version ID', 'pathkey' => 'GPSVersionID', 'pathvalue' => '0/34853/Data/0/0'), + 'gpsversionid' => array('name' => 'GPS Version ID', 'pathkey' => 'GPSVersionID', 'pathvalue' => '0/34853/Data/0/0'), 'gpslatituderef' => array('name' => 'GPS Latitude Ref', 'pathkey' => 'GPSLatitudeRef', 'pathvalue' => '0/34853/Data/0/1'), 'gpslatitude' => array('name' => 'GPS Latitude', 'pathkey' => 'GPSLatitude', 'pathvalue' => '0/34853/Data/0/2'), 'gpslongituderef' => array('name' => 'GPS Longitude Ref', 'pathkey' => 'GPSLongitudeRef', 'pathvalue' => '0/34853/Data/0/3'), - 'gpslongitude' => array('name' => 'GPS Longitude', 'pathkey' => 'GPSLongitude', 'pathvalue' => '0/34853/Data/0/4'), + 'gpslongitude' => array('name' => 'GPS Longitude', 'pathkey' => 'GPSLongitude', 'pathvalue' => '0/34853/Data/0/4'), 'gpsaltituderef' => array('name' => 'GPS Altitude Ref', 'pathkey' => 'GPSAltitudeRef', 'pathvalue' => '0/34853/Data/0/5'), 'gpsaltitude' => array('name' => 'GPS Altitude', 'pathkey' => 'GPSAltitude', 'pathvalue' => '0/34853/Data/0/6'), - 'gpstimestamp' => array('name' => 'GPS Timestamp', 'pathkey' => 'GPSTimeStamp', 'pathvalue' => '0/34853/Data/0/7'), - 'gpssatellites' => array('name' => 'GPS Satellites', 'pathkey' => 'GPSSatellites', 'pathvalue' => '0/34853/Data/0/8'), - 'gpsstatus' => array('name' => 'GPS Status', 'pathkey' => 'GPSStatus', 'pathvalue' => '0/34853/Data/0/9'), + 'gpstimestamp' => array('name' => 'GPS Timestamp', 'pathkey' => 'GPSTimeStamp', 'pathvalue' => '0/34853/Data/0/7'), + 'gpssatellites' => array('name' => 'GPS Satellites', 'pathkey' => 'GPSSatellites', 'pathvalue' => '0/34853/Data/0/8'), + 'gpsstatus' => array('name' => 'GPS Status', 'pathkey' => 'GPSStatus', 'pathvalue' => '0/34853/Data/0/9'), 'gpsmeasuremode' => array('name' => 'GPS Measure Mode', 'pathkey' => 'GPSMeasureMode', 'pathvalue' => '0/34853/Data/0/10'), 'gpsdop' => array('name' => 'GPS DOP', 'pathkey' => 'GPSDOP', 'pathvalue' => '0/34853/Data/0/11'), 'gpsspeedref' => array('name' => 'GPS Speed Ref', 'pathkey' => 'GPSSpeedRef', 'pathvalue' => '0/34853/Data/0/12'), @@ -1159,15 +1328,15 @@ 'gpsmapdatum' => array('name' => 'GPS Map Datum', 'pathkey' => 'GPSMapDatum', 'pathvalue' => '0/34853/Data/0/18'), 'gpsdestlatituderef' => array('name' => 'GPS Dest Latitude Ref', 'pathkey' => 'GPSDestLatitudeRef', 'pathvalue' => '0/34853/Data/0/19'), 'gpsdestlatitude' => array('name' => 'GPS Dest Latitude', 'pathkey' => 'GPSDestLatitude', 'pathvalue' => '0/34853/Data/0/20'), - 'gpsdestlongituderef' => array('name' => 'GPS Dest Longitude Ref', 'pathkey' => 'GPSDestLongitudeRef', 'pathvalue' => '0/34853/Data/0/21'), - 'gpsdestlongitude' => array('name' => 'GPS Dest Longitude', 'pathkey' => 'GPSDestLongitude', 'pathvalue' => '0/34853/Data/0/22'), - 'gpsdestbearingref' => array('name' => 'GPS Dest Bearing Ref', 'pathkey' => 'GPSDestBearingRef', 'pathvalue' => '0/34853/Data/0/23'), + 'gpsdestlongituderef' => array('name' => 'GPS Dest Longitude Ref', 'pathkey' => 'GPSDestLongitudeRef', 'pathvalue' => '0/34853/Data/0/21'), + 'gpsdestlongitude' => array('name' => 'GPS Dest Longitude', 'pathkey' => 'GPSDestLongitude', 'pathvalue' => '0/34853/Data/0/22'), + 'gpsdestbearingref' => array('name' => 'GPS Dest Bearing Ref', 'pathkey' => 'GPSDestBearingRef', 'pathvalue' => '0/34853/Data/0/23'), 'gpsdestbearing' => array('name' => 'GPS Dest Bearing', 'pathkey' => 'GPSDestBearing', 'pathvalue' => '0/34853/Data/0/24'), 'gpsdestdistanceref' => array('name' => 'GPS Dest Distance Ref', 'pathkey' => 'GPSDestDistanceRef', 'pathvalue' => '0/34853/Data/0/25'), 'gpsdestdistance' => array('name' => 'GPS Dest Distance', 'pathkey' => 'GPSDestDistance', 'pathvalue' => '0/34853/Data/0/26'), - 'gpsprocessingmethod' => array('name' => 'GPS Processing Method', 'pathkey' => 'GPSProcessingMethod', 'pathvalue' => '0/34853/Data/0/27'), + 'gpsprocessingmethod' => array('name' => 'GPS Processing Method', 'pathkey' => 'GPSProcessingMethod', 'pathvalue' => '0/34853/Data/0/27'), 'gpsareainformation' => array('name' => 'GPS Area Information', 'pathkey' => 'GPSAreaInformation', 'pathvalue' => '0/34853/Data/0/28'), - 'gpsdatestamp' => array('name' => 'GPS DateStamp', 'pathkey' => 'GPSDateStamp', 'pathvalue' => '0/34853/Data/0/29'), + 'gpsdatestamp' => array('name' => 'GPS DateStamp', 'pathkey' => 'GPSDateStamp', 'pathvalue' => '0/34853/Data/0/29'), 'gpsdifferential' => array('name' => 'GPS Differential', 'pathkey' => 'GPSDifferential', 'pathvalue' => '0/34853/Data/0/30'), // Custom Makernotes http://www.ozhiker.com/electronics/pjmt/jpeg_info/makernotes.html @@ -1190,38 +1359,93 @@ // Panasonic // Ricoh - 'jpegcomment' => array('name' => 'JPEG Comment', 'pathkey' => 'JpegComment', 'pathvalue' => ''), + 'jpegcomment' => array('name' => 'JPEG Comment', 'pathkey' => 'JpegComment', 'pathvalue' => ''), ), 'iptc' => array( - 'caption' => array('name' => 'Caption', 'path' => '2:120'), - 'caption_writer' => array('name' => 'Caption Writer', 'path' => '2:122'), - 'headline' => array('name' => 'Headline', 'path' => '2:105'), - 'instructions' => array('name' => 'Special Instructions', 'path' => '2:40'), - 'keywords' => array('name' => 'Keywords', 'path' => '2:25'), - 'category' => array('name' => 'Category', 'path' => '2:15'), - 'supplemental_categorie' => array('name' => 'Supplemental Category', 'path' => '2:20'), - 'copyright' => array('name' => 'Copyright Notice', 'path' => '2:116'), - 'byline' => array('name' => 'By-Line (Author)', 'path' => '2:80'), - 'byline_title' => array('name' => 'By-Line Title', 'path' => '2:85'), // Not used in Photoshop 7 - 'credit' => array('name' => 'Credit', 'path' => '2:110'), - 'source' => array('name' => 'Source', 'path' => '2:115'), - 'edit_status' => array('name' => 'Edit Status', 'path' => '2:07'), - 'priority' => array('name' => 'Priority', 'path' => '2:10'), - 'object_cycle' => array('name' => 'Object Cycle', 'path' => '2:75'), - 'job_id' => array('name' => 'Fixture Identifier', 'path' => '2:22'), - 'program' => array('name' => 'Originating Program', 'path' => '2:65'), - 'object_name' => array('name' => 'Object Name (Title)', 'path' => '2:05'), - 'date_created' => array('name' => 'Date Created', 'path' => '2:55'), - 'date_released' => array('name' => 'Release Date', 'path' => '2:30'), - 'time_created' => array('name' => 'Time Created', 'path' => '2:60'), - 'time_released' => array('name' => 'Release Time', 'path' => '2:25'), - 'city' => array('name' => 'City', 'path' => '2:90'), - 'sublocation' => array('name' => 'Sub-Location', 'path' => '2:92'), - 'state' => array('name' => 'Province/State', 'path' => '2:95'), - 'country' => array('name' => 'Country Name', 'path' => '2:101'), - 'country_code' => array('name' => 'Country Code', 'path' => '2:100'), - 'trans_reference' => array('name' => 'Transmission Reference', 'path' => '2:103'), + 'caption' => array('name' => 'Caption', 'path' => '2:120'), + 'caption_writer' => array('name' => 'Caption Writer', 'path' => '2:122'), + 'headline' => array('name' => 'Headline', 'path' => '2:105'), + 'instructions' => array('name' => 'Special Instructions', 'path' => '2:40'), + 'keywords' => array('name' => 'Keywords', 'path' => '2:25'), + 'category' => array('name' => 'Category', 'path' => '2:15'), + 'supplemental_categorie' => array('name' => 'Supplemental Category', 'path' => '2:20'), + 'copyright' => array('name' => 'Copyright Notice', 'path' => '2:116'), + 'byline' => array('name' => 'By-Line (Author)', 'path' => '2:80'), + 'byline_title' => array('name' => 'By-Line Title', 'path' => '2:85'), // Not used in Photoshop 7 + 'credit' => array('name' => 'Credit', 'path' => '2:110'), + 'source' => array('name' => 'Source', 'path' => '2:115'), + 'edit_status' => array('name' => 'Edit Status', 'path' => '2:07'), + 'priority' => array('name' => 'Priority', 'path' => '2:10'), + 'object_cycle' => array('name' => 'Object Cycle', 'path' => '2:75'), + 'job_id' => array('name' => 'Fixture Identifier', 'path' => '2:22'), + 'program' => array('name' => 'Originating Program', 'path' => '2:65'), + 'object_name' => array('name' => 'Object Name (Title)', 'path' => '2:05'), + 'date_created' => array('name' => 'Date Created', 'path' => '2:55'), + 'date_released' => array('name' => 'Release Date', 'path' => '2:30'), + 'time_created' => array('name' => 'Time Created', 'path' => '2:60'), + 'time_released' => array('name' => 'Release Time', 'path' => '2:25'), + 'city' => array('name' => 'City', 'path' => '2:90'), + 'sublocation' => array('name' => 'Sub-Location', 'path' => '2:92'), + 'state' => array('name' => 'Province/State', 'path' => '2:95'), + 'country' => array('name' => 'Country Name', 'path' => '2:101'), + 'country_code' => array('name' => 'Country Code', 'path' => '2:100'), + 'trans_reference' => array('name' => 'Transmission Reference','path' => '2:103'), + ), + + 'xmp' => array( + 'i4xcore_country_code' => array('name' => 'Country Code', + 'pathkey' => 'i4xcore_country_code', + 'path' => 'Iptc4xmpCore:CountryCode'), + + 'i4xcore_addr_city' => array('name' => 'Creator Info City', + 'pathkey' => 'i4xcore_addr_city', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiAdrCity'), + + 'i4xcore_addr_ctry' => array('name' => 'Creator Info Country', + 'pathkey' => 'i4xcore_addr_ctry', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiAdrCtry'), + + 'i4xcore_addr_etra' => array('name' => 'Creator Extra Information', + 'pathkey' => 'i4xcore_addr_etra', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiAdrExtadr'), + + 'i4xcore_zip_code' => array('name' => 'Creator Info Zip Code', + 'pathkey' => 'i4xcore_zip_code', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiAdrPcode'), + + 'i4xcore_region_code' => array('name' => 'Creator Info Region', + 'pathkey' => 'i4xcore_region_code', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiAdrRegion'), + + 'i4xcore_email_work' => array('name' => 'Creator Email Work', + 'pathkey' => 'i4xcore_email_work', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiEmailWork'), + + 'i4xcore_tel_work' => array('name' => 'Creator Telephone Work', + 'pathkey' => 'i4xcore_tel_work', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiTelWork'), + + 'i4xcore_url_work' => array('name' => 'Creator Website Work', + 'pathkey' => 'i4xcore_url_work', + 'path' => 'Iptc4xmpCore:CreatorContactInfoCiUrlWork'), + + 'i4xcore_intel_genre' => array('name' => 'Creator Intellectual Genre', + 'pathkey' => 'i4xcore_intel_genre', + 'path' => 'Iptc4xmpCore:IntellectualGenre'), + + 'i4xcore_location' => array('name' => 'Creator Location', + 'pathkey' => 'i4xcore_location', + 'path' => 'Iptc4xmpCore:Location'), + + 'i4xcore_scene' => array('name' => 'Creator Scene', + 'pathkey' => 'i4xcore_scene', + 'path' => 'Iptc4xmpCore:Scene'), + + 'i4xcore_subject_code' => array('name' => 'Subject Code', + 'pathkey' => 'i4xcore_subject_code', + 'path' => 'Iptc4xmpCore:SubjectCode'), + ) ); Modified: trunk/linpha2/lib/classes/pjmt/XMP.php =================================================================== --- trunk/linpha2/lib/classes/pjmt/XMP.php 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/lib/classes/pjmt/XMP.php 2007-02-13 16:30:32 UTC (rev 4675) @@ -233,8 +233,8 @@ function write_XMP_array_to_text( $xmparray ) { // Add the XMP packet header - // The sequence 0xEFBBBF is the UTF-8 encoded version of the Unicode \x93zero - // width non-breaking space character\x94 (U+FEFF), which is used for detecting + // The sequence 0xEFBBBF is the UTF-8 encoded version of the Unicode �zero + // width non-breaking space character� (U+FEFF), which is used for detecting // whether UTF-16 or UTF-8 is being used. $output_XMP_text = "<?xpacket begin='\xef\xbb\xbf' id='W5M0MpCehiHzreSzNTczkc9d'?>\n"; @@ -336,6 +336,10 @@ // Add heading to the HTML according to which Namespace the RDF items have switch ( substr( $key,6) ) { + //bzrudi + case "Iptc4xmpCore": + $output .= "<h3 class=\"XMP_Secondary_Heading\">Iptc4xmpCore Segment</h3>\n"; + break; case "photoshop": $output .= "<h3 class=\"XMP_Secondary_Heading\">Photoshop RDF Segment</h3>\n"; break; @@ -792,6 +796,21 @@ $GLOBALS[ 'XMP_tag_captions' ] = array ( +// added by bzrudi +"Iptc4xmpCore:CountryCode" => "Country Code", +"Iptc4xmpCore:CreatorContactInfoCiAdrCity" => "Creator Info City", +"Iptc4xmpCore:CreatorContactInfoCiAdrCtry" => "Creator Info Country", +"Iptc4xmpCore:CreatorContactInfoCiAdrExtadr" => "Creator Info Extra", +"Iptc4xmpCore:CreatorContactInfoCiAdrPcode" => "Creator Info Region Code", +"Iptc4xmpCore:CreatorContactInfoCiAdrRegion" => "Creator Info Region", +"Iptc4xmpCore:CreatorContactInfoCiEmailWork" => "Creator Email Work", +"Iptc4xmpCore:CreatorContactInfoCiTelWork" => "Creator Tel Work", +"Iptc4xmpCore:CreatorContactInfoCiUrlWork" => "Creator Web Work", +"Iptc4xmpCore:IntellectualGenre" => "Intellectual Genre", +"Iptc4xmpCore:Location" => "Location", +"Iptc4xmpCore:Scene" => "Scene", +"Iptc4xmpCore:SubjectCode" => "Subject Code", + "dc:contributor" => "Other Contributor(s)", "dc:coverage" => "Coverage (scope)", "dc:creator" => "Creator(s) (Authors)", Modified: trunk/linpha2/lib/include/File_Info_Show.php =================================================================== --- trunk/linpha2/lib/include/File_Info_Show.php 2007-02-11 10:33:47 UTC (rev 4674) +++ trunk/linpha2/lib/include/File_Info_Show.php 2007-02-13 16:30:32 UTC (rev 4675) @@ -241,7 +241,6 @@ <!-- Output the XMP Information --> <?php echo Interpret_XMP_to_HTML( read_XMP_array_from_text( get_XMP_text( $jpeg_header_data ) ) ); ?> - <BR> <HR> <BR> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |