Ignore:
Timestamp:
Feb 28, 2010, 6:15:11 PM (15 years ago)
Author:
grum
Message:

Small bugs fixed + implementation of "Magic" metadata

Location:
extensions/AMetaData/JpegMetaData/TagDefinitions
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/AMetaData/JpegMetaData/TagDefinitions/IfdTags.class.php

    r4935 r4998  
    977977      // flash, tag 0x9209, see EXIF 2.2 documentation
    978978      0x9209 => Array(
    979         'tagName'     => "flash",
     979        'tagName'     => "Flash",
    980980        'schema'      => "exif",
    981981        'translatable'=> true,
     
    990990                ),
    991991        'tagValues.specialValues' => Array(
    992           0x0000 => Array( // b00000001
     992          0x0001 => Array( // b00000001 => 'fired'
    993993                  0x00 => "flash did not fire",
    994994                  0x01 => "flash fired"
    995995                ),
    996           0x0006 => Array( // b00000110
     996          0x0006 => Array( // b00000110 => 'return'
    997997                  0x00 => "no strobe",                        // 00
    998998                  0x01 => "reserved",                         // 01
     
    10001000                  0x03 => "strobe return light detected"      // 11
    10011001                ),
    1002           0x0018 => Array( // b00011000
     1002          0x0018 => Array( // b00011000 => 'mode'
    10031003                  0x00 => "unknown",
    10041004                  0x01 => "compulsory flash firing",
    1005                   0x10 => "compulsory flash suppression",
    1006                   0x11 => "auto mode"
     1005                  0x02 => "compulsory flash suppression",
     1006                  0x03 => "auto mode"
    10071007                ),
    1008           0x0020 => Array( // b00100000
     1008          0x0020 => Array( // b00100000 => 'function'
    10091009                  0x00 => "flash function present",
    10101010                  0x01 => "no flash function"
    10111011                ),
    1012           0x0040 => Array( // b01000000
     1012          0x0040 => Array( // b01000000 => 'red-eye'
    10131013                  0x00 => "no red-eye reduction mode or unknown",
    10141014                  0x01 => "red-eye reduction supported"
  • extensions/AMetaData/JpegMetaData/TagDefinitions/XmpTags.class.php

    r4972 r4998  
    4848  class XmpTags extends KnownTags
    4949  {
     50    /**
     51     * this function extract from an Xmp Alt structure, the value in the given
     52     * lang
     53     *
     54     * @param Array $tagValues :
     55     * @param String $lang : the needed lang
     56     * @return String : the value in the specified lang, or in the default lang
     57     *                  if there is no specific value for the specified lang
     58     */
     59    static public function getAltValue($tagValues, $lang="x-default")
     60    {
     61      /*
     62       * test if the $tagValues is valid, otherwise return the $tagValues as
     63       * result
     64       */
     65      if(!is_array($tagValues)) return($tagValues);
     66      if(!array_key_exists("type", $tagValues) or
     67         !array_key_exists("values", $tagValues) )
     68         return($tagValues);
     69      if($tagValues['type']!="alt") return($tagValues);
     70
     71      $returned="";
     72      foreach($tagValues['values'] as $key => $val)
     73      {
     74        if($val['type']['value']==$lang or
     75           XmpTags::lang($val['type']['value'])==$lang or
     76           $val['type']['value']=="x-default")
     77          $returned=$val['value'];
     78      }
     79      return($returned);
     80    }
     81
     82    /**
     83     * this function tries to format the lang Id
     84     * something like "fr-fr" is returned as "fr_FR"
     85     */
     86    static private function lang($lang)
     87    {
     88      $result=preg_match("/([a-z]*)([-|_])([a-z]*)/i", $lang, $arr);
     89      return($arr[1]."_".strtoupper($arr[3]));
     90    }
     91
    5092    const TYPE_SIMPLE = 0x00;
    5193    const TYPE_SEQ = 0x01;
     
    13081350/*
    13091351 * The Flash is a sequence of Flash structure
    1310  * Not yet implemented
     1352 * Don't use the exif:Flash, but the associated tags :
     1353 *  exif:Fired, exif:Return, exif:Mode, exif:Function, exif:RedEyeMode
    13111354 */
    13121355      'exif:Flash' => Array(
     
    13171360        'schema'       => "exif",
    13181361      ),
     1362
     1363      'exif:Fired' => Array(
     1364        'implemented'  => true,
     1365        'translatable' => true,
     1366        'type'         => self::TYPE_SIMPLE,
     1367        'schema'       => "exif",
     1368        'tagValues' => Array(
     1369            'False' => "flash did not fire",
     1370            'True'  => "flash fired"
     1371        ),
     1372      ),
     1373
     1374      'exif:Return' => Array(
     1375        'implemented'  => true,
     1376        'translatable' => true,
     1377        'type'         => self::TYPE_SIMPLE,
     1378        'schema'       => "exif",
     1379        'tagValues' => Array(
     1380            0x00 => "no strobe",
     1381            0x01 => "reserved",
     1382            0x02 => "strobe return light not detected",
     1383            0x03 => "strobe return light detected"
     1384        ),
     1385      ),
     1386
     1387      'exif:Mode' => Array(
     1388        'implemented'  => true,
     1389        'translatable' => true,
     1390        'type'         => self::TYPE_SIMPLE,
     1391        'schema'       => "exif",
     1392        'tagValues' => Array(
     1393            0x00 => "unknown",
     1394            0x01 => "compulsory flash firing",
     1395            0x02 => "compulsory flash suppression",
     1396            0x03 => "auto mode"
     1397        ),
     1398      ),
     1399
     1400      'exif:Function' => Array(
     1401        'implemented'  => true,
     1402        'translatable' => true,
     1403        'type'         => self::TYPE_SIMPLE,
     1404        'schema'       => "exif",
     1405        'tagValues' => Array(
     1406            'False' => "flash function present",
     1407            'True'  => "no flash function"
     1408        ),
     1409      ),
     1410
     1411      'exif:RedEyeMode' => Array(
     1412        'implemented'  => true,
     1413        'translatable' => true,
     1414        'type'         => self::TYPE_SIMPLE,
     1415        'schema'       => "exif",
     1416        'tagValues' => Array(
     1417            'False' => "no red-eye reduction mode or unknown",
     1418            'True'  => "red-eye reduction supported"
     1419          ),
     1420      ),
     1421
    13191422      'exif:FocalLength' => Array(
    13201423        'exifTag'      => 0x920A,
Note: See TracChangeset for help on using the changeset viewer.