#1 2016-04-13 12:19:40

flipflip
Membre
Lyon
2005-03-19
2316

Génération des déclinaisons

Bonjour,

Avec la version 2.8 il est devenue très facile d'ajouter des formats d'images, le tiff par exemple et depuis plusieurs versions il est possible d'afficher plusieurs tailles d'une même image. C'est en bricolant le code de Piwigo et les logs que je me suis rendu compte d'une incohérence lors de la génération des déclinaisons : la génération se fait depuis la version png ou jpg (suivant la valeur de $conf['tiff_representative_ext']) qui a été générée lors de l'upload et non avec le fichier d'origine.

Je m'explique.

L'idée lorsqu'on utilisent des formats tiff, eps est de garder une qualité maximum qui peut être re-enregistré à volonté sans perte d'informations (le jpg est un format dit destructeur). Si je prend le processus de Piwigo :

- j'upload une photo en tiff via le formulaire, les log m'annoncent :

Code:

[2016-04-13 12:02:19]  [INFO]  upload_file_pdf, $file_path = ././upload/2016/04/13/20160413120219-1b302159.tif, $representative_ext = 
[2016-04-13 12:02:19]  [INFO]  upload_file_tiff, $file_path = ././upload/2016/04/13/20160413120219-1b302159.tif, $representative_ext = 
[2016-04-13 12:02:19]  [INFO]  upload_file_video, $file_path = ././upload/2016/04/13/20160413120219-1b302159.tif, $representative_ext = png
[2016-04-13 12:02:19]  [INFO]  Handling ././upload/2016/04/13/20160413120219-1b302159.tif got png
[2016-04-13 12:02:19]  [DEBUG]  [i.php]  /usr/bin/convert "/www/galleries/html/2.8/upload/2016/04/13/pwg_representative/20160413120219-1b302159.png" -filter Lanczos -resize 144x96! -strip -quality 95 -interlace line -sampling-factor 4:2:2 "/www/galleries/html/2.8/_data/i/upload/2016/04/13/pwg_representative/20160413120219-1b302159-th.png" 2>&1
[2016-04-13 12:02:20]  [DEBUG]  [i.php]  
  src_path: '20160413120219-1b302159.png'
  derivative_path: '20160413120219-1b302159-th.png'
  o_size: '1220 817 996740'
  d_size: '144 96 13824'
  mem_usage: 0.40000000000000002220446049250313080847263336181640625
  timing: array(
    'load' => 10,
    'rotate' => '',
    'crop' => '',
    'scale' => 0,
    'sharpen' => '',
    'watermark' => '',
    'save' => 139,
    'send' => 2,
    'total' => 152,
  )

Jusque la tout vas bien. Je visite ma galerie et la page de la photo que je viens d'ajouter, les log me disent

Code:

[2016-04-13 12:03:54]  [DEBUG]  [i.php]  /usr/bin/convert "/www/galleries/html/2.8/upload/2016/04/13/pwg_representative/20160413120219-1b302159.png" -filter Lanczos -resize 1008x675! -quality 95 -interlace line -sampling-factor 4:2:2 "/www/galleries/html/2.8/_data/i/upload/2016/04/13/pwg_representative/20160413120219-1b302159-la.png" 2>&1
[2016-04-13 12:03:55]  [DEBUG]  [i.php]  
  src_path: '20160413120219-1b302159.png'
  derivative_path: '20160413120219-1b302159-la.png'
  o_size: '1220 817 996740'
  d_size: '1008 675 680400'
  mem_usage: 0.40000000000000002220446049250313080847263336181640625
  timing: array(
    'load' => 14,
    'rotate' => '',
    'crop' => '',
    'scale' => 0,
    'sharpen' => '',
    'watermark' => '',
    'save' => 628,
    'send' => 0,
    'total' => 643,
  )

Dans mon exemple j'ai laissé le format png et toute les déclinaisons seront générées en png. Maintenant je passe le format en jpg, par exemple pour conserver les tracés que je peux avoir créés avec photoshop.

Trace de log :

Upload

Code:

[2016-04-13 12:10:54]  [INFO]  upload_file_pdf, $file_path = ././upload/2016/04/13/20160413121054-1b302159.tif, $representative_ext = 
[2016-04-13 12:10:54]  [INFO]  upload_file_tiff, $file_path = ././upload/2016/04/13/20160413121054-1b302159.tif, $representative_ext = 
[2016-04-13 12:10:54]  [INFO]  upload_file_video, $file_path = ././upload/2016/04/13/20160413121054-1b302159.tif, $representative_ext = jpg
[2016-04-13 12:10:54]  [INFO]  Handling ././upload/2016/04/13/20160413121054-1b302159.tif got jpg
[2016-04-13 12:10:54]  [DEBUG]  [i.php]  /usr/bin/convert "/www/galleries/html/2.8/upload/2016/04/13/pwg_representative/20160413121054-1b302159.jpg" -filter Lanczos -resize 144x96! -strip -quality 95 -interlace line -sampling-factor 4:2:2 "/www/galleries/html/2.8/_data/i/upload/2016/04/13/pwg_representative/20160413121054-1b302159-th.jpg" 2>&1
[2016-04-13 12:10:54]  [DEBUG]  [i.php]  
  src_path: '20160413121054-1b302159.jpg'
  derivative_path: '20160413121054-1b302159-th.jpg'
  o_size: '1220 817 996740'
  d_size: '144 96 13824'
  mem_usage: 0.40000000000000002220446049250313080847263336181640625
  timing: array(
    'load' => 12,
    'rotate' => '',
    'crop' => '',
    'scale' => 0,
    'sharpen' => '',
    'watermark' => '',
    'save' => 127,
    'send' => 0,
    'total' => 139,
  )

Pendant la visite

Code:

[2016-04-13 12:12:22]  [DEBUG]  [i.php]  /usr/bin/convert "/www/galleries/html/2.8/upload/2016/04/13/pwg_representative/20160413121054-1b302159.jpg" -filter Lanczos -resize 1008x675! -quality 95 -interlace line -sampling-factor 4:2:2 "/www/galleries/html/2.8/_data/i/upload/2016/04/13/pwg_representative/20160413121054-1b302159-la.jpg" 2>&1
[2016-04-13 12:12:22]  [DEBUG]  [i.php]  
  src_path: '20160413121054-1b302159.jpg'
  derivative_path: '20160413121054-1b302159-la.jpg'
  o_size: '1220 817 996740'
  d_size: '1008 675 680400'
  mem_usage: 0.40000000000000002220446049250313080847263336181640625
  timing: array(
    'load' => 16,
    'rotate' => '',
    'crop' => '',
    'scale' => 0,
    'sharpen' => '',
    'watermark' => '',
    'save' => 301,
    'send' => 0,
    'total' => 317,
  )

Dans les logs on se rend compte que la génération de la déclinaison est faite depuis le premier jpg et non depuis le fichier tiff donc depuis une version déjà dégradée.

C'est dommage de ne pas pouvoir exploiter la pleine qualité d'une image pour générer les déclinaisons.

Dernière modification par flipflip (2016-04-13 12:22:27)


Le cerveau à des capacités tellement étonnantes qu’aujourd’hui pratiquement tout le monde en à un

Mon site : http://www.blogoflip.fr

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact