Jump to content
graphee

[RESOLU] modifier le resize automatique des image de produits (en crop)

Recommended Posts

Bonjour a tous, (d'abord je préviens je ne suis pas développeur mais graphiste :P)

j'ai un petit souci avec la fonction qui génère automatiquement les images des produits sous prestashop, en effet lorsque j'ai une image de 800/600 et que je veux généré une miniature de 80 x 80 la fonction met automatiquement l'image en 80 x 60 et rajoute 10 pixel de blanc en haut et en bas (pour faire les 80 x 80)

J'aimerais modifier cette fonction afin que ce soit plutot un "crop" et donc que la fonction fasse une image de 106 x 80 puis coupe les bord a gauche et droite pour avoir une image de 80 x 80.

je préfère donc perdre une partie de l'image plutot que d'avoir des bordure (qui ne sont pas esthétiques)

mon souci est que je n'ai aucune idée de comment faire cela ^^

quelqu'un a t'il une piste? un module?

merci

Share this post


Link to post
Share on other sites

Bonjour,

Cela est possible en css sans toucher au fichiers PHP ou js de Prestashop.

Il te suffit de redimensionner tes images médium en 106x80 et d'afficher tes images dans un block ( un div ou un li etc..) qui fait 80x80 et avec un attribut overflow: hidden ;

Si ensuite tu veux centrer ton image, rien ne t'empêche de mettre un position absolute à ton image par rapport à ce block et d'indiquer une position optimum en fonction de ton type d'image.

Tu m'as suivi?

V++

atch

Share this post


Link to post
Share on other sites

En effet je te suis :)

très bonne idée mis a part que je ne suis pas un adepte des methodes type "bidouille" car de ce cas si on décide plus tard de changer le format de l'image "medium" via le back il faudra modifier aussi le CSS.

De plus je pense que ca ne marche pas dans le cas ou le client upload une image au format verticale assez longue, exemple 900 x 450.

je pense qu'il faut plutot modifier image_inc non?

Share this post


Link to post
Share on other sites

je suis curieux de voir comment ta fonction va "croper" ton image de 900x450 en 80x80...
(si ce n'est de la meme façon)

V++

Atch

Share this post


Link to post
Share on other sites

il semble que j'ai trouvé la soluce sur le forum anglais :

http://www.prestashop.com/forums/viewthread/15210/help_installation___upgrade/trick__crop_images_inside_preserve_ratio_no_white_spaces_arround_image/

la solution consiste a modificer le fichier image.inc.php se trouvant a la racine :

Ligne 136

if (intval(Configuration::get('PS_IMAGE_GENERATION_METHOD')) == 2 OR (intval(Configuration::get('PS_IMAGE_GENERATION_METHOD')) == 0 AND $widthDiff > $heightDiff)) 



a remplacer par

if (intval(Configuration::get('PS_IMAGE_GENERATION_METHOD')) == 2 OR (intval(Configuration::get('PS_IMAGE_GENERATION_METHOD')) == 0 AND $heightDiff > $widthDiff))



et en effet j'ai des image croppée parfaitement peut importe horizontale ou verticale.

---

Pour répondre a ta question je sais pas comment est codée le crop sous cette fonctionne faudrait faire qq test assez violent avec des images tres longues ou très large voir si ca bug!

  • Like 1

Share this post


Link to post
Share on other sites

Très utile, Graphee, merci beaucoup, fonctionne nickel, et pas seulement pour les images carrées :) Maintenant, je me demande comment effectuer cela de manière plus propre... et si la modification résiste aux mises à jour de prestashop, néanmoins, ça me sauve quelques temps, merci beaucoup :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More