Ignore:
Timestamp:
Jan 19, 2010, 12:31:32 AM (14 years ago)
Author:
grum
Message:

Change Locale class by L10n class ; add Readers for Nikon and Canon cameras ; some bug corrected

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/AMetaData/JpegMetaData/Readers/IfdReader.class.php

    r4698 r4705  
    106106      $this->dataOffset=$offset;
    107107
    108       $this->skipHeader();
     108      $this->skipHeader($this->headerSize);
    109109
    110110      $dataPointer = $this->data->offset();
     
    338338        case 0x010D: // DocumentName, tag 0x010D
    339339        case 0x010E: // ImageDescription, tag 0x010E
    340         case 0x010F: // Make, tag 0x010F
    341         case 0x0110: // Model, tag 0x0110
    342340        case 0x0131: // Software, tag 0x0131
    343341        case 0x013B: // Artist, tag 0x013B
     
    351349           */
    352350          $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);
    353360          break;
    354361        case 0x011A: // XResolution, tag 0x011A
     
    487494            case MakerNotesSignatures::OlympusHeader:
    488495            case MakerNotesSignatures::Olympus2Header:
    489               $returned="Olympus";
     496              $returned="Olympus is not implemented yet";
    490497              break;
    491498            case MakerNotesSignatures::FujiFilmHeader:
    492               $returned="FujiFilm";
     499              $returned="FujiFilm is not implemented yet";
    493500              break;
    494501            case MakerNotesSignatures::Nikon2Header:
    495502            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);
    497505              break;
    498506            case MakerNotesSignatures::PanasonicHeader:
    499               $returned="Panasonic";
     507              $returned="Panasonic is not implemented yet";
    500508              break;
    501509            case MakerNotesSignatures::PentaxHeader:
     
    506514            case MakerNotesSignatures::SigmaHeader:
    507515            case MakerNotesSignatures::Sigma2Header:
    508               $returned="Sigma";
     516              $returned="Sigma is not implemented yet";
    509517              break;
    510518            case MakerNotesSignatures::SonyHeader:
    511               $returned="Sony";
     519              $returned="Sony is not implemented yet";
    512520              break;
    513521            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              }
    515537              break;
    516538          }
Note: See TracChangeset for help on using the changeset viewer.