Re: Modification module mg3

Merci Dave.
Je ne manquerais pas de revenir vers toi si nécessaire.

Réponse ci-dessus postée le vendredi 23 octobre 2020 : 22:19



Bonjour,

J'essaie depuis plusieurs jours d'afficher les exif lors de la visualisation des photos de la galerie mg3.
Pour cela j'ai incorporé après la ligne 261 du fichier "fonctions_affichage.php" ce code :


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. if(in_array(strtolower(end(explode("'.', $mg3_image"))), array('jpg', 'jpeg', 'tif', 'tiff'))) // Si fichier Jpeg ou Tiff 
  5.         {
  6.             // Je lis les infos Exif
  7.         }
  8.         
  9.         if($exif = exif_read_data( $mg3_image , 'EXIF', true )) // Si le fichier images contient des infos Exif
  10.         {
  11.             // Alors je lis ces informations
  12.         }
  13.  
  14.         foreach ($exif as $key => $section) // On parcourt la première partie du tableau multidimensionnel
  15.         {       
  16.             foreach ($section as $name => $value) // On parcourt la seconde partie
  17.             {
  18.                 $exif_tab[$name] .= $value; // Récupération des valeurs dans le tableau $exif_tab
  19.             }
  20.         }
  21.  
  22.             if($exif_tab['FocalLength']) // Si les données de la distance focale existent
  23.             {
  24.                 $focale = round($exif_tab['FocalLength'], 0); // j'arrondis la valeur
  25.                 $focale = $focale." mm"; // Je rajoute l'unité millimètre
  26.             }
  27.             
  28.             if($exif_tab['Make']) // Marque de l'appareil
  29.                 $marque = $exif_tab['Make'];
  30.             if($exif_tab['Model'])// Modèle de l'appareil
  31.                 $modele = $exif_tab['Model'];
  32.             if($exif_tab['ExposureTime'])// Vitesse d'obturation
  33.                 $vit_obt = $exif_tab['ExposureTime'];
  34.             if($exif_tab['ISOSpeedRatings']) // Valeur iso
  35.                 $iso = $exif_tab['ISOSpeedRatings'];
  36.             if($exif_tab['ExposureBiasValue']) // Compensation d'exposition
  37.                 $comp_expo = $exif_tab['ExposureBiasValue'];
  38.             if($exif_tab['DateTimeOriginal'])
  39.                 $date = $exif_tab['DateTimeOriginal']; // Date de la prise de vue (heure de l'appareil)
  40.  
  41.                 // La date est d'un format spécial, on va donc la rendre lisible
  42.                 $date2 = explode(":", current(explode(" ", $date)));
  43.                 $heure = explode(":", end(explode(" ", $date))); // Utile dans le cas où vous souhaitez extraire l'heure
  44.                 $annee = current($date2); // Je lis la valeur courante de date2
  45.                 $mois = next($date2); // Puis la suivante (c'est un tableau)
  46.                 $jour = next($date2); // Puis la suivante 
  47.  
  48.             if($exif_tab['Software']) // Si l'information sur le logiciel existe
  49.                 $logiciel = $exif_tab['Software'];
  50.  
  51.             if (($exif_tab['Width'] && $exif_tab['Height']))
  52.                 $resolution = $exif_tab['Width'].'*'.$exif_tab['Height'];
  53.             
  54.                 $fn_proprietes.= '
  55.         <tr>
  56.             <td style="width:100%;">
  57.                 <b>Appareil :</b> 
  58.                 Marque : $marque &nbsp;&nbsp;Mod&egrave;le : $modele &nbsp;&nbsp;<b>Caract&eacute;ristiques :</b>&nbsp;&nbsp;Focale : $focale &nbsp;&nbsp;Vitesse d&#039obturation : $vit_obt &nbsp;&nbsp;Iso : $iso &nbsp;&nbsp;Compensation d&#039exposition : $comp_expo<br />
  59.                 Prise le : $jour/$mois/$annee&nbsp;&nbsp;A : $heure:$minute:$seconde<br /><br />
  60.             </td>
  61.         </tr>';
  62.  
  63.     $fn_proprietes.= '
  64. </table>
  65. <table class="mg3_image_prop">';
  66.  
  67. #####!!!#####
  68. ?>


L'affichage est bien sous la photo visualisée mais pas les valeurs :

Citation :

IMG_0148.jpg
Appareil : Marque : $marque Modèle : $modele Caractéristiques : Focale : $focale Vitesse d'obturation : $vit_obt Iso : $iso Compensation d'exposition : $comp_expo
Prise le : $jour/$mois/$annee A : $heure:$minute:$seconde



Je suppose que le problème vient du chemin vers les photos renseignées dans :


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. if(in_array(strtolower(end(explode("'.', [surlign]$mg3_image[/surlign]"))), array('jpg', 'jpeg', 'tif', 'tiff')))
  5.  
  6. #####!!!#####
  7. ?>


et


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. if($exif = exif_read_data( [surlign]$mg3_image[/surlign] , 'EXIF', true ))
  5.  
  6. #####!!!#####
  7. ?>


Je n'arrive pas à trouver la bonne syntaxe vers les photos des albums.
Quelqu'un aurait-il une petite idée d'ou viendrait le problème ou ce qui manque dans mon code pour que cela fonctionne ?

Parce que là, je bloque. Je ne suis pas assez calé en php pour résoudre seul ce problème.
Je ne pense pas que l'ajout en BDD soit obligé. C'est juste une lecture et un affichage des exif de l'en-tête des photos. J'ai fait un essai en mettant un lien vers une photo et les exif s'affiche correctement.
Je ne sais pas si je me suis fait bien comprendre mais si on pouvait m'aider ou m'orienter ça serait très sympha.

Réponse ci-dessus postée le mardi 10 novembre 2020 : 21:59



Bon après plusieurs heures de recherche et d'essais, j'ai réussi à avoir les exifs sous mes photos.
Mais, bien sur il y a un mais, suivant la marque de l'appareil photo utilisé l'affichage n'est pas correcte pour certains paramètres.
J'insère dans le fichier fonctions_affichage.php le code ci-dessous.
Toutes les données exif ne s'affiche pas ou de façon erronées.
Par exemple :
focale : 2000 mm au lieu de 200 mm
vitesse d'obturation : 10/2500ème de secondes au lieu de 1/250ème.
Ces anomalies dépendent de l'appareil photo utilisé.
Pour les appareils Canon, Olympus ou Pentax les informations sont ok mais pas pour Nikon et Sony.


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. <!-- mg3 proprietes image -->
  5. <table class="mg3_image_prop">';
  6. /* debut du bloc des propriétés de l'image */
  7.  
  8. /* date, auteur et taille */ 
  9.     if ( $fn_infos->image->img_dt_creation != '0000-00-00' OR $fn_infos->image->img_auteur != '' ) {
  10.         $mg3_aaaa = substr( $fn_infos->image->img_dt_creation,0,4 );
  11.         $mg3_mm = substr( $fn_infos->image->img_dt_creation,5,2 );
  12.         $mg3_jj = substr( $fn_infos->image->img_dt_creation,8,2 );
  13.         $mg3_taille = $fn_infos->image->img_width.'&nbsp;x&nbsp;'.$fn_infos->image->img_height.' px - '.$fn_infos->image->img_size.' ko';
  14.         $mg3_auteur = str_replace( ' ','%20', trim( $fn_infos->image->img_auteur ));
  15.     }
  16.  
  17.         if(in_array(strtolower(end(explode('.', ''.$fn_infos->image->img_chemin.''))), array('jpg', 'jpeg', 'tif', 'tiff'))) // Si fichier Jpeg ou Tiff 
  18.     
  19.         {
  20.             // Je lis les infos Exif
  21.         }
  22.         
  23.         if($exif = exif_read_data( ''.$fn_infos->image->img_chemin.'' , '0',  true ))        // Si le fichier images contient des infos Exif
  24.         {
  25.              // Alors je lis ces informations
  26.         }
  27.  
  28.         foreach ($exif as $key => $section) // On parcourt la première partie du tableau multidimensionnel
  29.  
  30.         {                     
  31.             foreach ($section as $name => $value) // On parcourt la seconde partie
  32.             {                
  33.              $exif_tab[$name] .= $value; // Récupération des valeurs dans le tableau $exif_tab                  
  34.             }            
  35.         }
  36.         
  37.         $marque = $exif_tab['Make'];  // Marque de l'appareil
  38.  
  39.         $modele = $exif_tab['Model']; // Modèle de l'appareil
  40.         
  41.         $focale = $exif_tab['FocalLength'];    // Données de la distance focale
  42.                                 {
  43.                                     $focale = round($exif_tab['FocalLength'], 0); // j'arrondis la valeur
  44.                                     $focale = $focale." mm"; // Je rajoute l'unité millimètre
  45.                                 }
  46.  
  47.         $objectif = $exif_tab['LensModel'];  // Description objectif
  48.  
  49.          $vit_obt = $exif_tab['ExposureTime'];        // Vitesse d\'obturation
  50.         
  51.         $ouverture = $exif_tab['ApertureFNumber'];   // Ouverture
  52.         
  53.         $programme = $exif_tab['ExposureProgram'];   // Données programme
  54.         
  55.         $iso = $exif_tab['ISOSpeedRatings']; // Valeur iso
  56.          
  57.         $cor_expo = (int)$exif_tab['ExposureBiasValue']; // Correction d'exposition
  58.         
  59.         $mode = $exif_tab['MeteringMode']; // mode d'exposition (spot, matriciel, pondéré, ... )
  60.         
  61.         $copyright = (string)$exif_tab['Artist']; // Copyright
  62.         
  63.         $logiciel = $exif_tab['Software']; // Information sur le logiciel de posttraitement
  64.  
  65.     $fn_proprietes.= '
  66.         <tr>
  67.             <td style="width:60%;vertical-align:top;padding-left:20px;margin: 10px;border: solid #dcdcdc;font-family:verdana;font-size:12px;">
  68.                 <b>Appareil :</b><br /> 
  69.                 &nbsp;&nbsp;- Marque :<span style="padding-left:4px;">'.$marque.'</span><br />
  70.                 &nbsp;&nbsp;- Mod&egrave;le :<span style="padding-left:6px;">'.$modele.'</span><br />
  71.                 &nbsp;&nbsp;- Objectif :<span style="padding-left:6px;">'.$objectif.'</span><br /><br />
  72.                 <b>Lumière :</b><br />
  73.                 &nbsp;&nbsp;- Mode de mesure: <span style="padding-left:5px;"><b>'.$mode.'</b></span>&nbsp;&nbsp;*<br />
  74.                 &nbsp;&nbsp;- Programme : <span style="padding-left:5px;"><b>'.$programme.'</b></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size:10px;"><i>(1 : Manuel - 2 : Normal - 3 : Ouverture - 4 : Vitesse)</i></span><br />
  75.                 &nbsp;&nbsp;- Correction d&#039exposition : <span style="padding-left:5px;">'.$cor_expo.'</span>&nbsp;IL<br /><br />
  76.  
  77.                 *<br />
  78.                 <span style="font-size:8px;"><i> - <b>2</b> : Mesure Pondérée centrale (NIKON/ SONY/ OLYMPUS) ou Sélective (CANON) ou Centrale Pondérée (PENTAX) ou Moyenne (FUJI)<br /> 
  79.                 - <b>3</b> : Mesure SPOT (CANON/ NIKON/ PENTAX/ SONY) ou Ponctuelle (OLYMPUS) ou Centrale (FUJI)<br /> 
  80.                 - <b>4</b> : Mesure Moyenne à Prépondérance Centrale (CANON)<br /> 
  81.                 - <b>5</b> : Mesure Matricielle (NIKON) ou Multizone (PENTAX/ SONY) ou Multi (FUJI) ou Evaluative (CANON) ou ZESP Numerique (OLYMPUS)<br /> 
  82.                 - <b>255</b> : Pondérée hautes lumières (NIKON)</i></span><br /><br />                
  83.             </td>
  84.             <td style="width:40%;vertical-align:top;text-align:left;padding-left:20px;border: solid #dcdcdc;font-family:verdana;font-size:12px;">
  85.                 <b>Caract&eacute;ristiques d&#039exposition :</b><br />
  86.                 &nbsp;&nbsp;- Focale : <span style="padding-left:114px;">'.$focale.'</span><br />
  87.                 &nbsp;&nbsp;- Vitesse d&#039obturation : <span style="padding-left:35px;">'.$vit_obt.'</span> ème de sec<br />
  88.                 &nbsp;&nbsp;- ISO : <span style="padding-left:132px;">ISO-'.$iso.'</span><br />
  89.                 &nbsp;&nbsp;- Diaphragme : <span style="padding-left:85px;">'.$ouverture.'</span><br/><br/>
  90.                 <b>Copyright</b> :<span style="padding-left:10px;">'.$copyright.'</span><br/><br/>
  91.                 <b>'.$mg3l_taille.' :</b>&nbsp;'.$mg3_taille.'<br /><br />
  92. <!--            <b>'.$mg3l_auteur.' :</b>&nbsp;<a href="index.php?mod=mg3&amp;ac=rech1&amp;mc='.$mg3_auteur.'">'.$fn_infos->image->    img_auteur.'</a><br /><br /> -->
  93.                 <b>Photographié le :</b>&nbsp;'.$mg3_jj.'/'.$mg3_mm.'/'.$mg3_aaaa.'<br /><br />
  94.             </td>
  95.             <td style="text-align:left;width:33,3%;vertical-align:top;"></td>
  96.         </tr>
  97. </table><br />';
  98.  
  99. #####!!!#####
  100. ?>



Réponse ci-dessus postée le lundi 14 décembre 2020 : 09:03



Je viens de voir que le problème serait peut-être du à la version d'exif.

Les versions : 0230 et 0300 sont ok. L'affichage est correcte.

mais la version 0231 ne l'est pas.

Est-ce que c'est possible de modifier la version d'exif utilisé par nos apn ?


Sujet écrit par PCA77 le mardi 15 décembre 2020 à 10:17

[ Imprimer ] - [ Fermer la fenêtre ]