web-dev-qa-db-fra.com

Maintenance de la couleur et de la qualité de l'image lors du téléchargement à l'aide de formats personnalisés

Un problème constant avec les clients est qu’ils ont tendance à télécharger des images de 5 Mo directement depuis leurs appareils sur leurs sites Web. Le meilleur moyen de contourner ce problème, car nous ne pouvons pas vraiment imposer le dimensionnement et le recadrage correct des images, consiste à le faire comme par magie avec une fonction wordpress.

// add new Image sizes
add_image_size( 'sqr-thumb', 450, 450, true ); // Hard Crop Mode

Voici une taille d'image personnalisée ajoutée, un recadrage de 450 par 450. Maintenant cela fonctionne, c'est beau, MAIS, la coloration et la qualité de l'image ont radicalement changé.

Dans l'image suivante, j'appelle le support des deux images (pas le sqr-thumb, mais si j'étais, ce serait carré).

Celui de droite a été ajouté avant la taille de l'image personnalisée. Celui de gauche a été ajouté après le recadrage de l'image personnalisée (il existe une version pouce carré). J'ai utilisé la même image dans les deux cas pour le téléchargement.

De toute évidence, celui de gauche est de qualité et de coloration moindres (autant que vous pouvez en voir dans un échantillon noir et blanc).

Y at-il un moyen de faire cela et de maintenir la qualité de l’image?

L'image utilisée ici est un fichier PNG, RVB enregistré, créé via Photoshop Creative Cloud. On peut le trouver à: http://rehost.ca/temp/woman.png

Note: J'ai essayé ceci avec 6 pngs différents, en couleur et en noir et blanc. Se passe avec tous.

Notre serveur de développement utilise Gd.

 Sample 

6
Faye

Utilisez les filtres jpeg_quality et wp_editor_set_quality pour définir la qualité des images redimensionnées:

add_filter( 'wp_editor_set_quality', 'wpse246186_image_quality' );
add_filter( 'jpeg_quality', 'wpse246186_image_quality' );
function wpse246186_image_quality( $quality ) {
    return 100; // 0 - 100% quality
}

Je n'ai pas été en mesure de reproduire le problème signalé. L’image PNG d’origine ressemble à la vignette. Testé dans Chrome sous Windows 7, PHP Version 5.6.19, Prise en charge de Gd: activé, ImageMagick non installé, moniteur large gamme calibré de manière matérielle.

Notes

  • Assurez-vous que les images ont bien été enregistrées dans l'espace colorimétrique sRVB prior pour pouvoir être téléchargées sur WordPress. Cela évitera les pertes de couleur et de saturation.

  • La modification du paramètre de qualité n’affectera pas les images déjà téléchargées. Utilisez un plugin tel que Régénérer les vignettes pour mettre à jour les images déjà téléchargées.

  • Le paramètre de qualité par défaut est 82 à partir de WordPress v4.5.

5
Dave Romsey