IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Images] Optimiser automatiquement une image


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Images] Optimiser automatiquement une image
    Bonjour à tous,

    J'ai initialement posté ce message sur un forum sans grand succès, c'est pourquoi je me tourne vers une communauté un peu plus spécialisée dans le domaine.

    Je travaille actuellement sur un site (de veille visuelle) qui permet à ses utilisateurs d'uploader leurs images (leurs créations). J'ai voulu optimiser au maximum les performances en vue d'une adaptation mobile (et aussi parce que ça améliore toujours l’expérience utilisateur).
    J'ai donc sauvegardé les images utilisées pour la présentation (logo, icone, etc) avec la fonction "Enregistrer pour le Web" de Photoshop qui permet de comparer à la volée le résultat en fonction du format et de différents paramètres. J'ai à chaque fois choisi le résultat me donnant la plus petite taille possible sans sacrifier la qualité. On peux ainsi arriver à des tailles (en octet) ridiculeusement petite.
    Seulement, si j'ai le contrôle total de ces images, il n'en est pas de même pour celles que les utilisateurs uploaderont. Elles pourront autant être en jpg, png, tiff ou gif, comportant beaucoup d'aplat de couleur ou eaucoup de détails, avec transparence ou non, ... Bref, un joyeux bordel .

    Je cherche donc une solution pour effectuer ce genre d'opération automatiquement (en PHP si possible) lors de l'upload, choisir le format et ses paramètres les plus adaptés afin de réduire au maximum la taille mémoire de l'image sans sacrifier la qualité.
    Je me fiche de la charge serveur engendrée sachant que les uploads seront relativement rares.

    Au de là de ça, même sur mes propres images a priori déjà optimisées lors de l'enregistrement sous Photoshop (ou Fireworks), l'outils PageSpeed de Goggle me dit que je pourrais encore les optimiser sans me dire exactement à quel niveau (il me propose juste de passer mes images dans des softs tels que OptiPNG, jpegOptim, etc). Certes ça permet de réduire de quelques octet seulement, mais j'aimerais bien savoir ce qu'il en est, quelles opérations ces soft font, etc.

    Vous me direz surement que je me casse la tête pour pas grand chose, que je pourrais déléguer le travail à une API ou optimisé moi même les images uploadées par les utilisateurs, mais ce sujet m'intéresse et me permet d'apprendre pas mal de choses. Et puis j'aime bien me prendre la tête .

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Vouloir optimiser les images en PHP est à mon avis une erreur , les algo seront probablement trop lourd.

    Autant trouver un ou plusieurs outils en ligne de commande que tu exécuteras depuis php après un upload.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Invité
    Invité(e)

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Il cherche à optimiser une image et pas simplement la redimensionner ou jouer sur le paramètre de qualité
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Elindorath Voir le message
    Je cherche donc une solution pour effectuer ce genre d'opération automatiquement (en PHP si possible) lors de l'upload, choisir le format et ses paramètres les plus adaptés afin de réduire au maximum la taille mémoire de l'image sans sacrifier la qualité.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    @jreaux62 : Comme l'a dit grunk, je ne cherche pas à redimensionner les images.

    @grunk : je me doute que ça doit être lourd mais j'aimerais bien voir à quoi ça peux ressembler et me rendre compte à quel point c'est lourd.

    Tant qu'à faire si quelqu'un avait des pistes sur d'autres méthodes ou langages à utiliser pour faire ça. L'important pour moi étant uniquement de faire ces optimisations sur mon serveur juste après la réception des images et de pas dépendre d'une solution tierce.

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Pour optimiser des jpg et des tiff tu peux par exemple en retirer toutes les informations exif. Mais ça implique de lire les données binaires du fichier et de savoir où se trouver les données retirable.

    Pour les autres format je ne saurait pas trop te dire.

    Quelques pistes ici : http://developer.yahoo.com/performan...tml#opt_images

    Mais je persiste dans l'idée qu'utiliser des petits outils en ligne de commande (style pngcrush) reste la solution la plus performantes.
    Y'a qu'à voir le temps que met PHP à modifier une image pixel par pixel avec GD pour se rendre compte que c'est pas l'idéal (sans compter que GD est pas réputé pour sa qualité d'image)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour le supplément d'info. Ça m'a en effet l'air d'être une bonne solution. J'avoue que je ne connaissait pas. Je me pose juste la question de la difficulté d'utilisation. Est-ce installable sur n'importe quelle offre de serveur, même modeste (sans tenir compte de la charge serveur) ?

    Je n'ai pas pu chercher convenablement, je suis sur smartphone. Je regarderais plus amplement une fois sur PC.

  9. #9
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Il faut au minimum un serveur dédié , voir éventuellement un dédié virtuel pour pouvoir installer des outils tiers.
    Sur un mutualisé ça ne sera pas possible.

    D'ailleurs sur un mutualisé si tu as des scripts de traitement d'image gourmand en ressource tu risque d'avoir quelque souçis , les hébergeurs n'aiment pas trop.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Construction optimisée d'une image à partir de petites images
    Par NiamorH dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 12/11/2012, 17h16
  2. Construction optimisée d'une image à partir de petites images
    Par NiamorH dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 01/11/2012, 13h22
  3. Réponses: 4
    Dernier message: 19/06/2008, 15h41
  4. position dans une image (selection dans une image)
    Par kaiseresis dans le forum Images
    Réponses: 3
    Dernier message: 31/05/2008, 13h30
  5. Convertir une image jpeg en une image .ico. .
    Par sonja dans le forum Imagerie
    Réponses: 5
    Dernier message: 14/05/2007, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo