Améliorer la qualité des vignettes (Archive)

Améliorer la qualité des vignettes générées par SPIP.

La partie privée de SPIP propose de générer automatiquement les vignettes quand on télécharge une nouvelle image. Cela permet par exemple de réaliser automatiquement des portfolio. C’est très sympa mais ce qui ne l’est pas, c’est que les vignettes sont parfois d’une qualité désastreuse.
Cette situation n’est cependant pas désespérée...

C’est un vieux truc qui se refile de spipeur à spipeur, et qui semble ravir tout le monde. En effet, la manip à faire est très simple et elle améliore sensiblement la qualité des vignettes générées.

Le problème est que la modification ne marche pas sur certains serveurs qu’elle fait planter (ça dépendrait de la version de PHP), et de ce qui fait elle n’est pas intégrée dans la version standard de SPIP.

Si l’extension GD2 n’est pas installée avec votre PHP, ce n’est pas la peine d’essayer car la solution passe par l’appel à des fonctions de GD2. Et si vous ne savez pas, testez le pach qui suit, et gardez cette modification si elle vous va !

Toute la correction à apporter porte sur 2 lignes du fichier inc-version.php3

$flag_ImageCreateTrueColor = function_exists("ImageCreateTrueColor") && function_exists("gd_info");
$flag_ImageCopyResampled = function_exists("ImageCopyResampled") && function_exists("gd_info");

Pour cela, on créera un fichier ecrire/mes_options.php3 qui contiendra les lignes suivantes :

<?php 
$flag_ImageCreateTrueColor = function_exists("ImageCreateTrueColor");
$flag_ImageCopyResampled = function_exists("ImageCopyResampled");
?>

Si le fichier ecrire/mes_options existe déjà, il suffit d’y ajouter, au milieu, les 2 lignes entre <?php et ?>

C’est tout !

Attention

Cette correction améliore la méthode avec laquelle les vignettes sont calculées, mais les vignettes qui ont déjà été créées ne seront pas recalculées ! Seules les nouvelles vignettes bénéficieront du nouveau traitement.

Discussion

8 discussions

  • 1

    Je suis en SPIP 1.7.2 et j’ai procédé à la correction, mais j’ai l’impression qu’elle était déjà en place :

    * Les lignes de inc_version étaient identiques à celle que j’ai mises dans mes_options...

    * La qualité des vignettes n’a pas été améliorée par la modification...

    Est-il possible que cette amélioration soit activée par défaut dans SPIP 1.7.2 ou y a-t-il qqchose que je n’ai pas saisi ?

    • Bonjour,

      Je suis en spip 1.8.2 et j’ai rencontré le même problème que certains ici... A savoir, même avec GD2, la qualité des vignettes est vraimment pas terros... Dans mon cas assez particulier, j’utilise des jpg de 64x64 pixels destinés à être redimensionné en 32x32 voire moins...

      En fait, c’est la compression jpg qui est en cause, car avec une compression de 70, en cas de resize du logo, on commence à voir la compression... Pour corriger celà, j’ai tout simplement « boosté » la qualité de la vignette jpg générée par le site pour la passer à 100. La qualité devient optimale, mais gare à ceux qui vont utiliser le site derriere, ils peuvent du coup se retrouver avec des vignettes assez lourde à télécharger... mais bon, vive le haut débit... ;)

      Comment faire la modif ?

      C’est aussi simple que la manip ci-dessus : ouvrir le fichier
      /ecrire/inc_logos.php3

      à la ligne 355, chercher :

      ImageJPEG($destImage, $vignette, 70);

      le 3e paramètre c’est la qualité du jpeg de 0 à 100. Remplacez donc par la valeur de votre choix... 100 c’est peut-etre violent, mais 90 ca devrait commencer à être pas mal...

      ImageJPEG($destImage, $vignette, 90);

      en espereant que ca peut aider...

    Répondre à ce message

  • zehunter

    salut a tous, personnelement je sais pas si le probleme est connu ou quoi, mais pour ma part, je peux gere des vignette (vu dans la parti admin, les vignette sont bien la, j’ai un spip 1.8...

    pourtant a l’insertion d’image dans un article, j’ai bien la vignette presente dans la colonne de gauche, mais a la publication de l’article seule l’image elle meme est proposé, pas la vignette et un lien vers la version taille reelle .. c’est moche !!

    dite moi que j’ai loupé un truc et que spip est capable de gere ca !! sinon ca fait pas tres serieux ...

    Répondre à ce message

  • (je viens de poster le message précédent, mon nom n’apparaît pas car j’ai dû oublier d’indiquer mon mél...)

    Je viens de voir que dans les options de configuration du site, j’avais la possibilité d’activer, pour les vignettes, la méthode GD2. Je pense donc que dans la v1.7.2 de SPIP, l’amélioration des vignettes est intégrée. Toutefois, j’ai d’autres questions :

    * Pourquoi le calcul des vignettes ne fonctionne-t-il que sur les images, et non sur les documents ? On pourrait imaginer qu’il fonctionne sur les documents de type image, d’autant que c’est sûrement là qu’il serait le plus utile (insertion de la vignette calculée dans le texte de l’article).

    * La logique [(#LOGO_DOCUMENT|#URL_DOCUMENT|reduire_image{130})] ne fonctionne pas : si on utilise le filtre reduire_image, le lien sur #URL_DOCUMENT ne se met pas en place...

    * Dans certains cas, pour les images avec vignette calculée (je n’ai pas encore compris lesquels) l’appel à #LOGO_DOCUMENT provoque l’affichage de l’image elle-même et non de sa vignette...

    Répondre à ce message

  • 2
    Col.KRO

    En fait, j’avais déjà un ce problème pour la création d’un site interne (gérér en partie par SPIP) et je crois me souvenir que j’avais besois d’un PHP supérieur ou égal 4.3 pour avoir l’accès aux fonctions clés de GD2 (gestion de true color). Mais ct déjà ya un moment et les hébergeurs ont du upgrader leurs versions.........

    • Col.KRO

      pour ceux qui si connaisses pas trop, ils peuvent créer un fichier info.php (qu’il faudra supprimer ensuite) contenant le code :

      <?
      phpinfo();
      ?>

      il suffira ensuite de taper l’adresse de votre site +/info.php et la liste des informations de votre serveur apparaîtra comme par magie. Vous pourrez donc vérifier le numéro de version de PHP et de la librairie GD.

    • Salut,

      J’ai pigé ce que vous avez dit. Cependant, mon problème est un peu différent : certaines vignettes s’affichent, les liens vignettes-images ne fonctionnent plus. Pensez-vous que votre solution résolve aussi ce problème ? Pouvez-vous m’en proposer d’autres ?

    Répondre à ce message

  • est-ce tjrs valable pour spip 1.7.1 ??
    Merci pr vos réponses.

    Répondre à ce message

  • 1


    Juste une précision (car j’ai eu du mal à interpréter ce qu’il fallait faire au début ;o)
    Il faut mettre en commentaire les 2 ligne du fichier ecrire/inc-version.php3 et créer (ou modifier) le fichier ecrire/mes_options.php3 en y écrivant les 2 lignes fournies.

    • oui merci.

      Mais à ce moment là autant corriger dans inc_version en supprimant la fin des lignes. C’est dommage que ca ne marche pas directement en ne modifiant QUE mes_options.php3.

      @+ ca reste une super contrib.

    Répondre à ce message

  • 1

    Testé sur un site hébergé chez Free sans problème. Les vignettes étaient afreuses avant et nickel maintenant !
    Version SPIP : 1.7
    Version php chez Free : php3
    (“ancien compte” créé avant décembre 2003)

    • Tout pareil, c’est le top !

      Bon, vous allez dire que je chipotte, mais je les trouve encore un peu floues, les vignettes. On peut jouer encore plus finement sur les paramètres de GD ?

    Répondre à ce message

  • Thanks a million !

    C’est tout bonnement génial d’avoir de belles vignettes à la place de mes anciennes vignettes toutes sales ;)

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom