Changeset 5191


Ignore:
Timestamp:
Mar 19, 2010, 6:00:29 PM (14 years ago)
Author:
grum
Message:

add metadata help

Location:
extensions/AMetaData
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • extensions/AMetaData/admin/amd_metadata_database.tpl

    r5183 r5191  
    2626  {
    2727    formatNbItemPerRequest({/literal}{$datas.NumberOfItemsPerRequest}{literal});
    28     $("#iamd_nb_item_per_request_slider").slider(
     28    /*$("#iamd_nb_item_per_request_slider").slider(
    2929      {
    3030        min:5,
     
    3434        slide: function(event, ui) { formatNbItemPerRequest(ui.value); }
    3535      }
    36     );
     36    );*/
    3737    getStatus();
    3838  }
     
    220220<div id="dialog"></div>
    221221
     222
    222223<div id="ianalyzestatus">
    223224  <ul>
     
    228229</div>
    229230
     231<div class="nfo">
     232  <ul>
     233    <li>{'g003_warning_on_analyze_4a'|@translate}</li>
     234    <li>{'g003_warning_on_analyze_4b'|@translate}</li>
     235  </ul>
     236</div>
     237
     238
    230239<div id='ianalyzearea'>
    231240  <fieldset>
    232241    <legend>{'g003_update_metadata'|@translate}</legend>
    233242      <form class="formtable">
     243        <div class="nfo">
     244          <p>{'g003_warning_on_analyze_3'|@translate}</p>
     245          <ul>
     246            <li>{'g003_warning_on_analyze_3a'|@translate}</li>
     247            <li>{'g003_warning_on_analyze_3b'|@translate}</li>
     248          </ul>
     249
     250          <p>{'g003_warning_on_analyze_5'|@translate}</p>
     251        </div>
     252
     253        <label>
     254          <input type="radio" value="caddieAdd" name="fAMD_analyze_action" id="ianalyze_action2" checked>&nbsp;
     255          {'g003_analyze_caddie_add_pictures'|@translate}
     256        </label><br>
     257
     258        <label>
     259          <input type="radio" value="caddieReplace" name="fAMD_analyze_action" id="ianalyze_action3">&nbsp;
     260          {'g003_analyze_caddie_replace_pictures'|@translate}
     261        </label><br>
     262
     263
     264        <label>
     265          <input type="radio" value="notAnalayzed" name="fAMD_analyze_action" id="ianalyze_action0">&nbsp;
     266          {'g003_analyze_not_analyzed_pictures'|@translate}
     267        </label><br>
     268
     269        <label>
     270          <input type="radio" value="all" name="fAMD_analyze_action" id="ianalyze_action1">&nbsp;
     271          {'g003_analyze_all_pictures'|@translate}
     272        </label><br>
     273
    234274        <div class="warning">
    235275          <p style="font-weight:bold; font-size:+2;">{'g003_warning_on_analyze_0'|@translate}</p>
    236276          <p>{'g003_warning_on_analyze_1'|@translate}</p>
    237277          <p  style="font-weight:bold;">{'g003_warning_on_analyze_2'|@translate}</p>
    238           <p>{'g003_warning_on_analyze_3'|@translate}</p>
    239278        </div>
    240279
    241         <label>
    242           <input type="radio" value="caddieAdd" name="fAMD_analyze_action" id="ianalyze_action2" checked>&nbsp;
    243           {'g003_analyze_caddie_add_pictures'|@translate}
    244         </label><br>
    245 
    246         <label>
    247           <input type="radio" value="caddieReplace" name="fAMD_analyze_action" id="ianalyze_action3">&nbsp;
    248           {'g003_analyze_caddie_replace_pictures'|@translate}
    249         </label><br>
    250 
    251 
    252         <label>
    253           <input type="radio" value="notAnalayzed" name="fAMD_analyze_action" id="ianalyze_action0">&nbsp;
    254           {'g003_analyze_not_analyzed_pictures'|@translate}
    255         </label><br>
    256 
    257         <label>
    258           <input type="radio" value="all" name="fAMD_analyze_action" id="ianalyze_action1">&nbsp;
    259           {'g003_analyze_all_pictures'|@translate}
    260         </label><br>
    261280
    262281        <br>
     282        <input type="hidden" id="iamd_NumberOfItemsPerRequest" value="{$datas.NumberOfItemsPerRequest}">
     283        <!--
    263284        {'g003_setting_nb_items_per_request'|@translate}&nbsp;
    264         <input type="hidden" id="iamd_NumberOfItemsPerRequest" value="{$datas.NumberOfItemsPerRequest}">
    265285        <div id="iamd_nb_item_per_request_slider"></div>
    266286        <div id="iamd_nb_item_per_request_display"></div>
    267287        <br><br>
     288        -->
    268289
    269290        <input type="button" value="{'g003_analyze'|@translate}" onclick="doAnalyze();">
  • extensions/AMetaData/amd.css

    r5088 r5191  
    11
    2       .formtable, .formtable P { text-align:left; display:block; }
    3       .formtable tr { vertical-align:top; }
    4       .littlefont { font-size:90%; }
    5       .littlefont td { padding:1px; }
    6       table.littlefont th { padding:3px; text-align:left;}
    7       table.littlefont td { padding:1px 3px; }
    8       #iprogressbar_contener { border:1px solid #606060; margin:0px; padding:0px; display:block; height:20px; }
    9       #iprogressbar_bg { background:#606060; display:block; z-index:100; position:relative; height:20px; }
    10       #iprogressbar_fg { color:#FF3363; width:100%; text-align:center; display: block; z-index:200; position:relative; top:-18px;  }
    11       #iHeaderListTags { width:100%; border:1px solid; border-collapse: collapse; margin-top:3px; }
    12       #iListTags { width:100%; border:1px solid; height:280px; border-top:0px; overflow:auto;}
    13       #iListImages { width:100%; border-bottom:1px solid; overflow:auto;}
    14       #iListTagsNb, #iListImagesNb { width:99%; text-align:right; margin-bottom:8px; padding:2px; font-size:80%; }
    15       #iListTags table, #iListImages table, table.listTags { width:100%; text-align:left; border-collapse: collapse; }
    16       #iListTags table tr:hover { cursor:pointer; background:#303030; }
    17       #iListImages table tr:hover, table.listTags tr:hover { background:#303030; cursor:default; }
    18       #iHeaderListImages { width:100%; border-bottom:1px solid; }
    19       .warning { color:#dd0000; border:1px solid #dd0000; margin-bottom:8px; margin-top:8px; padding:8px; }
    20       .warning p { margin-top:0.5em; margin-bottom:0em; }
    21       .warning ul { margin-top:0em; margin-bottom:0.5em; }
    22       .pctBar { height:6px; background:#FF7700; }
    23       li.groupItems { border:1px solid #666666; margin-bottom:5px; padding:0 5px; width:90%; cursor:move; padding:4px; }
    24       div.addGroup { padding-left:40px; text-align:left; }
    25       #iGroups { list-style: none; }
    26       .ui-dialog { background: #222222; border:2px solid #FF3363; }
    27       .ui-dialog-buttonpane { padding:4px; }
    28       .ui-dialog-buttonpane button { margin-right:8px; }
    29       .ui-dialog-titlebar { background:#111111; font-weight:bold; }
    30       .ui-dialog-title-dialog { text-align: left; }
    31       .ui-dialog-titlebar-close { float: right; }
    32       .ui-dialog-content { overflow:auto; }
    33       .ui-dialog-container { }
    34       .ui-dialog-titlebar-close { display:none; }
    35       .tagListOrder { list-style: none; padding:0px; margin-right:8px; margin-left:35px; }
    36       .tagListOrder li { border:none; background:#333333; padding:1px; margin-bottom:2px; width:100%; }
    37       .groupTags { padding-top:8px; }
    38       .editGroupListButton { margin-left:8px; position:absolute; z-index:1000; }
    39       table.tagListOrderItem { width:100%; border-collapse:collapse; }
    40       .dialogForm { text-align:left; margin:8px; }
    41       #ianalyzestatus { background: #333333; margin:8px; padding:8px; }
    42       #ianalyzestatus ul { margin:0px; padding:0 0 0 20px; }
    43       #iamd_nb_item_per_request_display { display:inline-block; width:70px; }
    44       #iamd_nb_item_per_request_slider { display:inline-block; width:350px; }
    45       #iDialogProgress { margin:16px 8px 8px; }
    46    
     2.formtable, .formtable P { text-align:left; display:block; }
     3.formtable tr { vertical-align:top; }
     4.littlefont { font-size:90%; }
     5.littlefont td { padding:1px; }
     6table.littlefont th { padding:3px; text-align:left;}
     7table.littlefont td { padding:1px 3px; }
     8#iprogressbar_contener { border:1px solid #606060; margin:0px; padding:0px; display:block; height:20px; }
     9#iprogressbar_bg { background:#606060; display:block; z-index:100; position:relative; height:20px; }
     10#iprogressbar_fg { color:#FF3363; width:100%; text-align:center; display: block; z-index:200; position:relative; top:-18px;  }
     11#iHeaderListTags { width:100%; border:1px solid; border-collapse: collapse; margin-top:3px; }
     12#iListTags { width:100%; border:1px solid; height:280px; border-top:0px; overflow:auto;}
     13#iListImages { width:100%; border-bottom:1px solid; overflow:auto;}
     14#iListTagsNb, #iListImagesNb { width:99%; text-align:right; margin-bottom:8px; padding:2px; font-size:80%; }
     15#iListTags table, #iListImages table, table.listTags { width:100%; text-align:left; border-collapse: collapse; }
     16#iListTags table tr:hover { cursor:pointer; background:#303030; }
     17#iListImages table tr:hover, table.listTags tr:hover { background:#303030; cursor:default; }
     18#iHeaderListImages { width:100%; border-bottom:1px solid; }
     19.nfo ul { margin-top:0em; margin-bottom:1em; }
     20.warning { color:#ffffff; background:#dd0000; margin-bottom:8px; margin-top:8px; padding:8px; }
     21.warning p, .nfo p { margin-top:0.5em; margin-bottom:0em; }
     22.warning ul { margin-top:0em; margin-bottom:0.5em; }
     23.pctBar { height:6px; background:#FF7700; }
     24li.groupItems { border:1px solid #666666; margin-bottom:5px; padding:0 5px; width:90%; cursor:move; padding:4px; }
     25div.addGroup { padding-left:40px; text-align:left; }
     26#iGroups { list-style: none; }
     27.ui-dialog { background: #222222; border:2px solid #FF3363; }
     28.ui-dialog-buttonpane { padding:4px; }
     29.ui-dialog-buttonpane button { margin-right:8px; }
     30.ui-dialog-titlebar { background:#111111; font-weight:bold; }
     31.ui-dialog-title-dialog { text-align: left; }
     32.ui-dialog-titlebar-close { float: right; }
     33.ui-dialog-content { overflow:auto; }
     34.ui-dialog-container { }
     35.ui-dialog-titlebar-close { display:none; }
     36.tagListOrder { list-style: none; padding:0px; margin-right:8px; margin-left:35px; }
     37.tagListOrder li { border:none; background:#333333; padding:1px; margin-bottom:2px; width:100%; }
     38.groupTags { padding-top:8px; }
     39.editGroupListButton { margin-left:8px; position:absolute; z-index:1000; }
     40table.tagListOrderItem { width:100%; border-collapse:collapse; }
     41.dialogForm { text-align:left; margin:8px; }
     42#ianalyzestatus { background: #333333; margin:8px; padding:8px; }
     43#ianalyzestatus ul { margin:0px; padding:0 0 0 20px; }
     44#iamd_nb_item_per_request_display { display:inline-block; width:70px; }
     45#iamd_nb_item_per_request_slider { display:inline-block; width:350px; }
     46#iDialogProgress { margin:16px 8px 8px; }
     47#helpBody { text-align: left; padding-top:30px; }
     48#helpBody ul { padding:0px; margin:0px; }
     49#helpBody li { margin-left:30px; }
     50
  • extensions/AMetaData/amd_aip.class.inc.php

    r5183 r5191  
    9999    if($_REQUEST['fAMD_tabsheet']=='help')
    100100    {
    101       //$this->displayHelp();
     101      $this->displayHelp($_REQUEST['fAMD_page']);
    102102    }
    103103    elseif($_REQUEST['fAMD_tabsheet']=='metadata')
     
    238238    }
    239239
     240
     241    if($_REQUEST['fAMD_tabsheet']=="help" and !isset($_REQUEST['fAMD_page']))
     242    {
     243      $_REQUEST['fAMD_page']="exif";
     244    }
     245
     246    if($_REQUEST['fAMD_tabsheet']=="help" and
     247       !($_REQUEST['fAMD_page']=="exif" or
     248         $_REQUEST['fAMD_page']=="iptc" or
     249         $_REQUEST['fAMD_page']=="xmp" or
     250         $_REQUEST['fAMD_page']=="magic"))
     251    {
     252      $_REQUEST['fAMD_page']="exif";
     253    }
     254
     255
    240256    /*
    241257     * check ajax
     
    479495  /**
    480496   * display and manage the metadata page
    481    * the page have two tabsheet :
     497   * the page have three tabsheet :
    482498   *  - select tag management, to manage tags to be selected on the galerie
    483499   *  - display tag management, to choose how the tags are displayed
     500   *  - manage database
    484501   *
    485502   * @param String $tab : the selected tab on the stat page
     
    515532    else
    516533    {
    517       $template->assign('sheetContent', $this->displayDatabase());
     534      $template->assign('sheetContent', $this->displayMetaDataDatabase());
    518535    }
    519536
     
    632649   * @return String : the content of the page
    633650   */
    634   private function displayDatabase()
     651  private function displayMetaDataDatabase()
    635652  {
    636653    global $template, $page;
     
    679696
    680697
     698
     699  /**
     700   * display and manage the help page
     701   *
     702   * @param String $tab : the selected tab on the help page
     703   */
     704  protected function displayHelp($tab)
     705  {
     706    global $template, $user, $lang;
     707    $template->set_filename('body_page', dirname(__FILE__).'/admin/amd_help.tpl');
     708
     709    $statTabsheet = new tabsheet('statTabsheet', $this->tabsheet->get_titlename());
     710    $statTabsheet->select($tab);
     711    $statTabsheet->add('exif',
     712                          l10n('g003_help_tab_exif'),
     713                          $this->page_link.'&amp;fAMD_tabsheet=help&amp;fAMD_page=exif');
     714    $statTabsheet->add('iptc',
     715                          l10n('g003_help_tab_iptc'),
     716                          $this->page_link.'&amp;fAMD_tabsheet=help&amp;fAMD_page=iptc');
     717    $statTabsheet->add('xmp',
     718                          l10n('g003_help_tab_xmp'),
     719                          $this->page_link.'&amp;fAMD_tabsheet=help&amp;fAMD_page=xmp');
     720    $statTabsheet->add('magic',
     721                          l10n('g003_help_tab_magic'),
     722                          $this->page_link.'&amp;fAMD_tabsheet=help&amp;fAMD_page=magic');
     723    $statTabsheet->assign();
     724
     725    $data=Array(
     726      'sheetContent' => $this->BBtoHTML($lang['g003_help_'.$tab]),
     727      'title' => l10n('g003_help_tab_'.$tab),
     728    );
     729
     730    $template->assign('data', $data);
     731
     732    $template->assign_var_from_handle('AMD_BODY_PAGE', 'body_page');
     733  }
     734
     735
     736
     737  /**
     738   * convert (light) BB tag to HTML tag
     739   *
     740   * all BB codes are not recognized, only :
     741   *  - [ul] [/ul]
     742   *  - [li] [/li]
     743   *  - [b] [/b]
     744   *  - [i] [/i]
     745   *  - [url] [/url]
     746   *  - carriage return is replaced by a <br>
     747   *
     748   * @param String $text : text to convert
     749   * @return String : BB to HTML text
     750   */
     751  protected function BBtoHTML($text)
     752  {
     753    $patterns = Array(
     754      '/\[li\](.*?)\[\/li\]\n*/im',
     755      '/\[b\](.*?)\[\/b\]/ism',
     756      '/\[i\](.*?)\[\/i\]/ism',
     757      '/\[url\]([\w]+?:\/\/[^ \"\n\r\t<]*?)\[\/url\]/ism',
     758      '/\[url=([\w]+?:\/\/[^ \"\n\r\t<]*?)\](.*?)\[\/url\]/ism',
     759      '/\n{0,1}\[ul\]\n{0,1}/im',
     760      '/\n{0,1}\[\/ul\]\n{0,1}/im',
     761      '/\n/im',
     762    );
     763    $replacements = Array(
     764      '<li>\1</li>',
     765      '<b>\1</b>',
     766      '<i>\1</i>',
     767      '<a href="\1">\1</a>',
     768      '<a href="\1">\2</a>',
     769      '<ul>',
     770      '</ul>',
     771      '<br>',
     772    );
     773
     774    return(preg_replace($patterns, $replacements, $text));
     775  }
    681776
    682777
  • extensions/AMetaData/amd_install.class.inc.php

    r5183 r5191  
    126126    public function activate()
    127127    {
    128       global $template;
     128      global $template, $user;
    129129
    130130
     
    152152            FROM ".CADDIE_TABLE." tc
    153153              LEFT JOIN ".IMAGES_TABLE." ti ON ti.id = tc.element_id
     154            WHERE tc.user_id = ".$user['id']."
    154155            ORDER BY RAND() LIMIT 25;";
    155156      $result=pwg_query($sql);
  • extensions/AMetaData/language/fr_FR/plugin.lang.php

    r5183 r5191  
    7979$lang['g003_no_tag_can_be_selected'] = "Aucune métadonnée n'est disponible";
    8080
     81
     82$lang['g003_warning_on_analyze_3'] = "Le référentiel s'alimente peu à peu chaque fois qu'une page de la galerie est visitée. La durée nécessaire pour l'alimentation complète du référentiel dépends donc :";
     83$lang['g003_warning_on_analyze_3a'] = "du nombre de photos dans la gallerie";
     84$lang['g003_warning_on_analyze_3b'] = "du nombre de pages visualisées quotidiennement";
     85$lang['g003_warning_on_analyze_4a'] = "le référentiel n'est exploité qu'à des fins statistiques et facilite le choix des métadonnées sélectionnées pour affichage";
     86$lang['g003_warning_on_analyze_4b'] = "une image non prise prise en compte pour l'alimentation du référentiel disposera quand même des métadonnées sur la galerie";
     87$lang['g003_warning_on_analyze_5'] = "Afin de disposer rapidement d'un référentiel complet, il est possible de procéder à une analyse plus directe de la galerie :";
    8188$lang['g003_warning_on_analyze_0'] = "Attention !";
    82 $lang['g003_warning_on_analyze_1'] = "L'alimentation du référentiel est un processus qui peut s'avérer être long (jusqu'à plusieurs minutes de traitement) et gourmand en ressources sur le serveur en fonction du nombre de photos sélectionnées pour l'analyse.";
     89$lang['g003_warning_on_analyze_1'] = "L'alimentation du référentiel via le processus d'analyse directe peut s'avérer être long (jusqu'à plusieurs minutes de traitement) et gourmand en ressources sur le serveur en fonction du nombre de photos sélectionnées pour l'analyse.";
    8390$lang['g003_warning_on_analyze_2'] = "Certains hébergeurs peuvent sanctionner ce type d'usage.";
    84 $lang['g003_warning_on_analyze_3'] = "Il est fortement recommandé de remplir le panier avec une cinquantaine de photos représentatives de la galerie pour procéder au traitement.";
     91
     92
    8593
    8694$lang['g003_metadata_detail'] = "Domaine de valeurs pour la métadonnée";
    8795
    8896$lang['g003_help'] = "Aide sur les métadonnées";
     97$lang['g003_help_tab_exif'] = "Exif";
     98$lang['g003_help_tab_iptc'] = "IPTC";
     99$lang['g003_help_tab_xmp'] = "XMP";
     100$lang['g003_help_tab_magic'] = "Magic";
     101$lang['g003_help_exif'] = "Les métadonnées EXIF sont des informations qui sont stockées dans l'image, par l'appareil photo, au moment de la prise de vue.
     102
     103Les informations que l'on y trouve sont essentiellement techniques :
     104[ul]
     105[li]matériel utilisé (modèle de l'appareil, constructeur)[/li]
     106[li]les conditions de prises de vue (ouverture, temps d'exposition, focale)[/li]
     107[li]le moment de la prise de vue (date, heure)[/li]
     108[li]le lieu géographique (données GPS)[/li]
     109[li]des informations sur le format de la photo (dimensions, résolution, compression)[/li]
     110[/ul]
     111
     112L'alimentation des métadonnées EXIF est normalisée ([url]http://www.exif.org/Exif2-2.PDF[/url]), néanmoins :
     113[ul]
     114[li]cette norme mise en place par le [url=http://www.jeita.or.jp]JEITA[/url] (Japan Electronics and Information Technology Industries Association) n'évolue plus depuis 2002[/li]
     115[li]chaque métadonnée définie dans la norme est facultative : tous les appareils ne renseignent donc pas toutes les métadonnées[/li]
     116[li]il existe une métadonnée [i]MakerNote[/i] qui est un champ libre exploité par les fabriquants et dans laquelle sont stockées des informations non présentes dans les spécifications (par exemple, les références de l'objectif) ; ces informations sont propres à chaque fabricant, voir propre à chaque appareil. Le plugin sait interpréter une partie de ces informations pour les appareils [b]Pentax[/b], [b]Canon[/b] et [b]Nikon[/b].[/li]
     117[/ul]";
     118
     119$lang['g003_help_iptc'] = "Les métadonnées IPTC sont des informations qui sont stockées dans l'image, par le photographe, via un logiciel approprié.
     120
     121La nature des informations que l'on y trouve est essentiellement orientée vers le monde professionnel :
     122[ul]
     123[li]les références du photographe (nom, contact)[/li]
     124[li]les informations relatives au Copyright[/li]
     125[li]la description de la photo (titre, description, commentaires, mot-clefs)[/li]
     126[li]des informations diverses relatives au monde professionnel[/li]
     127[/ul]
     128
     129L'alimentation des métadonnées IPTC est normalisée ([url]http://www.iptc.org[/url]).
     130Cette norme a été mise en place par un consortium réunissant les principales agences de presses du monde, L[i]'International Press Telecommunications Council[/i] (abrégé en IPTC).";
     131$lang['g003_help_xmp'] = "Les métadonnées XMP sont essentiellement des métadonnées EXIF et IPTC qui sont stockées dans l'image au format XML.
     132
     133L'avantage des métadonnées XMP, c'est l'apport d'une certaine souplesse :
     134[ul]
     135[li]les informations peuvent y être stockées en plusieurs langues[/li]
     136[li]l'emploi du jeu de caractères Unicode permet (principalement) d'utiliser des caractères non latin[/li]
     137[li]le format XML facilite l'interprétation et l'échange d'information[/li]
     138[/ul]
     139
     140L'alimentation des métadonnées XMP est normalisée ([url]http://www.metadataworkinggroup.org/specs[/url]).
     141La norme conseille d'exploiter de préférence les métadonnées EXIF et IPTC si celles-ci sont présentes.
     142
     143La conversion des métadonnées EXIF & IPTC en métadonnées XMP s'effectue généralement au moyen de logiciels de retouche photographique.
     144
     145Le modèle XMP étant plus pauvre que le modèle EXIF, les conséquences de cette conversion se traduisent par une perte d'informations au niveau de la photo. Généralement les informations perdues ne sont pas d'une grande importance pour la plupart des utilisateurs, néanmoins la norme préconise que les logiciels qui enregistrent les métadonnées XMP conservent les métadonnées d'origine : ce n'est malheureusement pas toujours le cas.
     146";
     147$lang['g003_help_magic'] = "Une même information peut être stockée sous plusieurs formats au sein d'une photo :
     148[ul]
     149[li]elle peut être présente dans tous les formats[/li]
     150[li]elle peut être présente dans un format mais pas dans un autre[/li]
     151[/ul]
     152
     153Par exemple, l'ouverture du diaphragme peut être présente dans 4 métadonnées différentes :
     154[ul]
     155[li][b]exif.exif.FNumber[/b][/li]
     156[li][b]exif.exif.ApertureValue[/b][/li]
     157[li][b]xmp.exif:ApertureValue[/b][/li]
     158[li][b]xmp.exif:FNumber[/b][/li]
     159[/ul]
     160
     161Afin de faciliter la restitution des informations pouvant être éparpillées, le plugin propose un petit panel des métadonnées les plus usitées et se charge d'en analyser la présence dans les photos, et de restituer l'information la plus pertinente.
     162Ce sont les métadonnées nommées [b]Magic[/b].
     163
     164Ainsi, la métadonnée [b]magic.ShotInfo.Aperture[/b] restitue :
     165[ul]
     166[li]la valeur de la métadonnée [b]exif.exif.FNumber[/b] si celle-ci est présente dans la photo, sinon[/li]
     167[li]la valeur de la métadonnée [b]xmp.exif:FNumber[/b] si celle-ci est présente dans la photo, sinon[/li]
     168[li]la valeur de la métadonnée [b]exif.exif.ApertureValue[/b] si celle-ci est présente dans la photo, sinon[/li]
     169[li]la valeur de la métadonnée [b]xmp.exif:ApertureValue[/b] si celle-ci est présente dans la photo[/li]
     170[/ul]";
    89171
    90172?>
Note: See TracChangeset for help on using the changeset viewer.