2010-03-29 21 views
8

J'ai un code de galerie de photos qui permet de redimensionner l'image et de créer des miniatures. J'utilise ImageMagick pour le faire. J'ai ouvert une page de galerie à l'aide de l'outil Page Speed ​​de Google et j'ai découvert que les images redimensionnées et les miniatures ont toutes deux environ 10 Ko de données supplémentaires (fichiers JPEG en particulier).Optimisation de la taille des fichiers JPG - PHP, ImageMagick, & Vitesse de la page de Google

Que puis-je ajouter à mes scripts pour optimiser la taille du fichier?


INFORMATIONS COMPLÉMENTAIRES

J'utilise le filtre imagick::FILTER_LANCZOS avec un paramètre de flou de 0.9 lorsque vous appelez la fonction resizeImage(). Les fichiers JPEG ont un paramètre de qualité de 80.

+0

Quels arguments donnez-vous à ImageMagick? – asgerhallas

+0

Mis à jour ma question pour répondre aux paramètres/arguments. Ma compréhension est que Google Page Speed ​​supprime 10 Ko d'informations sans perte, il ne compresse pas davantage l'image. Y a-t-il des méta-données que je peux enlever d'une manière ou d'une autre? – Sonny

Répondre

10

J'ai trouvé cette question SO, "Tools for JPEG optimization?", qui a quelques bonnes informations, mais les solutions sont en dehors de PHP. En utilisant des notes à partir des solutions de cette question, je trouvais qu'il y avait deux optimisations sans perte qui pourraient être effectuées:

  1. optimisation des tables de codage de Huffman
  2. Suppression des méta-données (EXIF, etc.)

les deux peut être accompli avec ImageMagick cette façon:

  1. Selon ImageMagick documentation, les tables de codage de Huffman optimal sont calculés par défaut. Cette étape est déjà prise en charge, yay!
  2. La suppression de meta-data peut être accomplie très simplement en utilisant la méthode stripImage().

Une image que j'ai testée a été réduite de 12 Ko. Le fichier 600x450 est passé de 63,42 Ko à 51,42 Ko, et la vignette 140 x 105 est passée de 17,98 Ko à 5,98 Ko.

3

Exécutez vos images via le service SmushIt de Yahoo, où les images sont converties en PNG avec un nombre exact de couleurs. Pas de perte de qualité, mais une perte de poids :)

+1

C'est un outil astucieux. Il ne semble pas qu'ils l'aient mis en place en tant que service, malheureusement. – Sonny