[RÉSOLU] Modifier la génération des miniatures
PPmarcel
Member
Bonjour,
Sur pluxml 5.4 j'avais mis les mains dans le moteur afin de modifier la génération des miniatures. Ce que je voulais était :
[list=*]
[*]conserver les dimensions d'origine des images (laissant le navigateur s'en occuper)[/*]
[*]recompresser les images à hauteur de 60%[/*]
[*]transformer les jpegs en progressive (l'image s'affiche en basse qualité puis s'améliore pendant le chargement)[/*]
[/list]
Pour cela j'avais commenté fonction copyresampled qui redimensionne l'image créés la minature dans makeThumb() :
Or dans pluxml 5.5 il semblerait que l'utilisation de la fonction imagecopyresampled soit maintenant requis pour la génération des images.
Quelqu'un pourrait-il me donner un coup de main pour by-passer le redimensionnement et ajouter imageinterlace() là où ce serait le plus indiqué ?
Merci d'avance
Sur pluxml 5.4 j'avais mis les mains dans le moteur afin de modifier la génération des miniatures. Ce que je voulais était :
[list=*]
[*]conserver les dimensions d'origine des images (laissant le navigateur s'en occuper)[/*]
[*]recompresser les images à hauteur de 60%[/*]
[*]transformer les jpegs en progressive (l'image s'affiche en basse qualité puis s'améliore pendant le chargement)[/*]
[/list]
Pour cela j'avais commenté fonction copyresampled qui redimensionne l'image créés la minature dans makeThumb() :
# Création de l'image
$image_p = imagecreatetruecolor($width,$height);
if($type == 1) { # gifs
...
}
elseif($type == 2) { # jpegs
$image = imagecreatefromjpeg($filename);
#imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
#imagejpeg($image_p, $filename_out, $quality);
imageinterlace($image, true); // create progressive JPGs
imagejpeg($image, $filename_out, 60);
}
elseif($type == 3) { # png
...
}
Or dans pluxml 5.5 il semblerait que l'utilisation de la fonction imagecopyresampled soit maintenant requis pour la génération des images.
Quelqu'un pourrait-il me donner un coup de main pour by-passer le redimensionnement et ajouter imageinterlace() là où ce serait le plus indiqué ?
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
1. Pourquoi vouloir bypasser la génération des miniatures en modifiant le code. ça ne revient pas à utiliser la taille de l'image originale et donc choisir lors de l'upload: Redimensionner images = Taille originale et Créer miniatures = Pas de miniature
2. le taux de compression des jpeg est déjà à 60%. Il est définit dans la classe class.plx.medias.php au niveau de la variable de classe
3. L'emplacement de imageinterlace me semble ok
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci pour ta réponse. En fait je souhaite avoir quelque chose différent de ce que tu décris.
Je veux d'une part des "miniatures" réduites fortement en qualité mais sans redimensionnement pour les pages, et les images originales pour l'affichage en visionneuse (colorbox). A taille réelle les minatures présentent alors beaucoup d'artefacts. Mais leur dimension dans les articles étant restreintes en taille, le navigateur doit les afficher en plus petit et les artefacts ne sont plus visibles. Cela présente l'avantage d'avoir une bonne définition d'image sur les écrans rétina (1600x1600 au lieu d'un 800x800 par exemple). En revanche les images colorbox s'affichant en plein écran, je veux que la qualité soit bien meilleure.
Mon soucis c'est qu'on dirait que vers la fin de la fonction MakeThumb() on a un "if imagecopyresampled(options){ switch... return image}". On dirait que imagecopyresampled devient indispensable pour la génération des miniatures, alors que avant je pouvais le commenter (voir code 5.4 plus haut).
Autrement j'ai essayé de définir des miniatures de 3000x3000 par exemple, pensant que si l'image est plus petite on conservera la taille originale. Mais ça les agrandis finalement.
____________________________________________
EDIT: finalement j'ai fini par élaguer tout ce qui attrait au redimensionnement et j'ai créé un case qui va bien pour générer les types d'images qui me conviennent.