Changeset 4705 for extensions/AMetaData/JpegMetaData
- Timestamp:
- Jan 19, 2010, 12:31:32 AM (14 years ago)
- Location:
- extensions/AMetaData/JpegMetaData
- Files:
-
- 6 added
- 1 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/AMetaData/JpegMetaData/Common/Data.class.php
r4686 r4705 97 97 } 98 98 99 function __destruct() 100 { 101 unset($this->byteOrder); 102 unset($this->offset); 103 unset($this->length); 104 unset($this->startOffset); 105 unset($this->data); 106 unset($this->currentPos); 107 } 108 99 109 /** 100 110 * returns the datas length -
extensions/AMetaData/JpegMetaData/Common/MakerNotesSignatures.class.php
r4686 r4705 35 35 * Define the maker notes signatures for the EXIF "MakerNote" tag 36 36 * 37 * This class provides theses public functions : 38 * - (static) getMaker 39 * - (static) setExifMaker 40 * - (static) getExifMaker 41 * 37 42 * ----------------------------------------------------------------------------- 38 43 */ 39 44 40 45 define("MAKER_PENTAX", "Pentax"); 46 define("MAKER_NIKON", "Nikon"); 47 define("MAKER_CANON", "Canon"); 41 48 42 49 Class MakerNotesSignatures … … 51 58 const Nikon2Header = "Nikon\x00\x01\x00"; 52 59 /** Nikon 3 signature */ 53 const Nikon3Header = "Nikon\x00\x02 \x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";60 const Nikon3Header = "Nikon\x00\x02"; 54 61 /** Panasonic signature */ 55 62 const PanasonicHeader = "Panasonic\x00\x00\x00"; … … 74 81 const FujiFilmHeaderSize = 12; 75 82 const Nikon2HeaderSize = 8; 76 const Nikon3HeaderSize = 18;83 const Nikon3HeaderSize = 7; 77 84 const PanasonicHeaderSize = 12; 78 85 const PentaxHeaderSize = 6; … … 82 89 const SonyHeaderSize = 12; 83 90 const CanonHeaderSize = 0; 84 const UnknownHeaderSize 91 const UnknownHeaderSize = 0; 85 92 93 static private $exifMaker = ""; 86 94 87 95 static public function getMaker($datas) … … 111 119 else 112 120 { return(self::UnknownHeader); } 121 } 113 122 123 /** 124 * this function is used by IFD Reader to store all information about maker 125 * and camera model 126 * 127 * the stored value if used within a grep like "/canon/i" to determine the 128 * maker note. 129 * For more information about this tricks see the how the tag 0x927c is 130 * managed in the function "processSpecialTag" of the file 131 * IfdReader.class.php 132 * 133 * @param String $value : the maker or the camera model 134 */ 135 static public function setExifMaker($value) 136 { 137 if(is_array($value)) 138 { 139 foreach($value as $val) 140 { 141 self::$exifMaker.=$val." "; 142 } 143 } 144 else 145 { 146 self::$exifMaker.=$value." "; 147 } 148 return(self::$exifMaker); 114 149 } 150 151 /** 152 * this function is used by IFD Reader to store all information about maker 153 * and camera model 154 * 155 * @return String 156 */ 157 static public function getExifMaker() 158 { 159 return(self::$exifMaker); 160 } 161 115 162 } 116 163 -
extensions/AMetaData/JpegMetaData/Common/XmlData.class.php
r4686 r4705 98 98 } 99 99 100 /** 101 * free memory before destroying the object... 102 */ 100 103 function __destruct() 101 104 { 105 $this->previousNode=null; 106 $this->nextNode=null; 107 unset($this->previousNode); 108 unset($this->nextNode); 102 109 unset($this->attributes); 103 110 unset($this->childs); 111 unset($this->value); 112 unset($this->name); 113 unset($this->level); 104 114 } 105 115 … … 369 379 function __destruct() 370 380 { 381 unset($this->xml); 382 unset($this->isValid); 383 unset($this->isLoaded); 371 384 unset($this->nodes); 372 385 } … … 464 477 $result=xml_parse_into_struct($xmlParser, $this->xml, $values); 465 478 xml_parser_free($xmlParser); 479 unset($xmlParser); 466 480 467 481 //an error has occured while parsing the xml structure … … 517 531 } 518 532 } 533 unset($values); 519 534 unset($tree); 520 535 return(true); -
extensions/AMetaData/JpegMetaData/Readers/GenericReader.class.php
r4698 r4705 70 70 protected $nbEntries = 0; 71 71 protected $entries = Array(); 72 protected $headerSize = 0; 72 73 73 74 protected $data = null; -
extensions/AMetaData/JpegMetaData/Readers/IfdReader.class.php
r4698 r4705 106 106 $this->dataOffset=$offset; 107 107 108 $this->skipHeader( );108 $this->skipHeader($this->headerSize); 109 109 110 110 $dataPointer = $this->data->offset(); … … 338 338 case 0x010D: // DocumentName, tag 0x010D 339 339 case 0x010E: // ImageDescription, tag 0x010E 340 case 0x010F: // Make, tag 0x010F341 case 0x0110: // Model, tag 0x0110342 340 case 0x0131: // Software, tag 0x0131 343 341 case 0x013B: // Artist, tag 0x013B … … 351 349 */ 352 350 $returned=ConvertData::toStrings($values); 351 break; 352 case 0x010F: // Make, tag 0x010F 353 case 0x0110: // Model, tag 0x0110 354 /* Make and Model are null terminated strings 355 * memorize the maker & camera from the exif tag : it's used to 356 * recognize the Canon camera (no header in the maker note) 357 */ 358 $returned=ConvertData::toStrings($values); 359 MakerNotesSignatures::setExifMaker($returned); 353 360 break; 354 361 case 0x011A: // XResolution, tag 0x011A … … 487 494 case MakerNotesSignatures::OlympusHeader: 488 495 case MakerNotesSignatures::Olympus2Header: 489 $returned="Olympus ";496 $returned="Olympus is not implemented yet"; 490 497 break; 491 498 case MakerNotesSignatures::FujiFilmHeader: 492 $returned="FujiFilm ";499 $returned="FujiFilm is not implemented yet"; 493 500 break; 494 501 case MakerNotesSignatures::Nikon2Header: 495 502 case MakerNotesSignatures::Nikon3Header: 496 $returned="Nikon"; 503 require_once(JPEG_METADATA_DIR."Readers/NikonReader.class.php"); 504 $returned=new NikonReader($values, $valuesOffset, $this->byteOrder, $makerSignature); 497 505 break; 498 506 case MakerNotesSignatures::PanasonicHeader: 499 $returned="Panasonic ";507 $returned="Panasonic is not implemented yet"; 500 508 break; 501 509 case MakerNotesSignatures::PentaxHeader: … … 506 514 case MakerNotesSignatures::SigmaHeader: 507 515 case MakerNotesSignatures::Sigma2Header: 508 $returned="Sigma ";516 $returned="Sigma is not implemented yet"; 509 517 break; 510 518 case MakerNotesSignatures::SonyHeader: 511 $returned="Sony ";519 $returned="Sony is not implemented yet"; 512 520 break; 513 521 default: 514 $returned="unknown maker => ".ConvertData::toHexDump($values, $type, 16); 522 /* 523 * Canon maker notes don't have any header 524 * So, the only method to know if the maker note is from a Canon 525 * camera is looking the exif maker value equals "Canon" or 526 * the camera model contains "Canon" 527 */ 528 if(preg_match("/.*canon.*/i",MakerNotesSignatures::getExifMaker())) 529 { 530 require_once(JPEG_METADATA_DIR."Readers/CanonReader.class.php"); 531 $returned=new CanonReader($values, $valuesOffset, $this->byteOrder, ""); 532 } 533 else 534 { 535 $returned="unknown maker => ".ConvertData::toHexDump($values, $type, 16); 536 } 515 537 break; 516 538 } -
extensions/AMetaData/JpegMetaData/Readers/JpegReader.class.php
r4686 r4705 111 111 { 112 112 unset($this->appMarkerSegmentReader); 113 unset($this->fileHandler); 113 114 } 114 115 -
extensions/AMetaData/JpegMetaData/Readers/SegmentReader.class.php
r4698 r4705 71 71 } 72 72 73 function __destruct() 74 { 75 unset($this->data); 76 unset($this->isValid); 77 unset($this->isLoaded); 78 } 79 73 80 /** 74 81 * return true if the segment is valid -
extensions/AMetaData/JpegMetaData/Readers/TiffReader.class.php
r4698 r4705 111 111 function __destruct() 112 112 { 113 parent::__destruct(); 113 114 unset($this->IFDs); 114 115 } -
extensions/AMetaData/JpegMetaData/Readers/XmpReader.class.php
r4698 r4705 97 97 function __destruct() 98 98 { 99 unset($this->xmlData); 99 100 unset($this->xmpTag2Exif); 100 101 parent::__destruct(); -
extensions/AMetaData/JpegMetaData/TagDefinitions/XmpTags.class.php
r4698 r4705 1871 1871 unset($tmpTags[1]); 1872 1872 unset($tmpTags[2]); 1873 unset($tmpTags); 1873 1874 } 1874 1875 -
extensions/AMetaData/JpegMetaData/test/index.php
r4698 r4705 47 47 require_once(JPEG_METADATA_DIR."Readers/JpegReader.class.php"); 48 48 require_once(JPEG_METADATA_DIR."Common/XmlData.class.php"); 49 require_once(JPEG_METADATA_DIR."Common/L ocale.class.php");49 require_once(JPEG_METADATA_DIR."Common/L10n.class.php"); 50 50 51 51 require_once(JPEG_METADATA_DIR."TagDefinitions/IfdTags.class.php"); … … 335 335 $page.="<span style='font-family:monospace;'>"; 336 336 337 $time=microtime(true); 338 337 339 $memory=memory_get_usage(); 338 $time=microtime(true);339 340 340 $jpeg = new JpegReader($file); 341 341 $time2=microtime(true); 342 342 343 343 344 $page2="JpegReader extraction<br>"; … … 419 420 420 421 if(is_string($txt) and $val->isTranslatable()) 421 $txt=L ocale::get($txt);422 $txt=L10n::get($txt); 422 423 if($txt instanceof DateTime) 423 424 $txt=$txt->format("Y-m-d H:i:s"); … … 426 427 if(is_array($value)) 427 428 $value=print_r($value, true); 428 $page2.="<tr><td>".$key."</td><td>".L ocale::get($val->getName())."</td><td>".$value."</td><td style='$style'>".$txt."</td></tr>";429 $page2.="<tr><td>".$key."</td><td>".L10n::get($val->getName())."</td><td>".$value."</td><td style='$style'>".$txt."</td></tr>"; 429 430 $i++; 430 431 } … … 440 441 { 441 442 $val['implemented']?$i++:$j++; 442 $page2.="<tr><td>".$key."</td><td>".L ocale::get($val['name'])."</td><td>".($val['implemented']?"yes":"no")."</td></tr>";443 $page2.="<tr><td>".$key."</td><td>".L10n::get($val['name'])."</td><td>".($val['implemented']?"yes":"no")."</td></tr>"; 443 444 } 444 445 $page2.="</table>Total tags ; implemented: $i - not implemented: $j</span><hr>"; … … 455 456 456 457 echo $page; 458 unset($page2); 459 unset($page); 457 460 ?>
Note: See TracChangeset
for help on using the changeset viewer.