biwix Posted October 1, 2013 Share Posted October 1, 2013 (edited) Bonjour, Je viens d'installer un thème sur mon Prestashop 1.5.5.0 et j'ai généré les miniatures... Le problème, c'est qu'elles sont maintenant de forme rectangulaire et j'aimerais qu'elles soient à nouveau de forme carrée... (je vais modifier mon thème ensuite). Elles ont toutes la même taille/proportions, en plus clair j'aimerais couper toutes mes miniatures ainsi : D'avance je remercie la personne qui pourra m'aider ! Biwix Edited October 1, 2013 by biwix (see edit history) Link to comment Share on other sites More sharing options...
Szed Posted October 1, 2013 Share Posted October 1, 2013 Si elles sont de taille rectangulaire, c'est que vous n'avez pas spécifié une taille carré. Vous pouvez spécifier les tailles de chaque "types" d'image que vous utiliser dans Préférences > Images au dessus du bloc de regénération des miniatures. Link to comment Share on other sites More sharing options...
biwix Posted October 1, 2013 Author Share Posted October 1, 2013 Bonjour, À la base elles étaient de forme carrée. Le thème que j'utilise demandait de définir des images rectangulaires. J'ai donc défini les tailles ainsi, puis j'ai utilisé l'outil de régénération. Mais finalement, je préfère avoir des images carrées. J'ai l'impression que si je redéfinis des images carrées, et que j'utilise l'outils tel quel, ça va bien refaire des images carrées, seulement en ajoutant cette fois ci des bandes blanches à gauche et à droite de l'image, c'est juste ? On est d'accord ? Moi je voudrais forcer l'outils à couper le haut et le bas de l'image, toujours de la même manière, de sorte à avoir à nouveau des images carrées ET SURTOUT sans ces bandes blanches... Je crois que l'on doit modifier quelque chose dans images.inc.php ou dans le style, car sur la version 1.5.5.0 on dirait qu'il faut utiliser une autre méthode, juste ? D'avance je vous remercie... Link to comment Share on other sites More sharing options...
Szed Posted October 1, 2013 Share Posted October 1, 2013 Effectivement, il y aurait une bande blanche selon le format initial de l'image. A l'époque de < 1.5 on pouvait modifier une ligne dans images.inc.php pour cropé/centré les images. Ca fonctionnait pas mal. CF ce topic : http://www.prestashop.com/forums/topic/56292-resolu-modifier-le-resize-automatique-des-image-de-produits-en-crop/ EN 1.5, je pense qu'il faut aller faire la modif dans /classes/ImageManager.php la ligne 157 if (Configuration::get('PS_IMAGE_GENERATION_METHOD') == 2 || (!Configuration::get('PS_IMAGE_GENERATION_METHOD') && $width_diff > $height_diff)) deviendrais if (Configuration::get('PS_IMAGE_GENERATION_METHOD') == 2 || (!Configuration::get('PS_IMAGE_GENERATION_METHOD') && $width_diff < $height_diff)) Link to comment Share on other sites More sharing options...
biwix Posted October 1, 2013 Author Share Posted October 1, 2013 Alors j'avais trouvé ceci, qui consiste à créer de nouvelle miniature en les renommant avec "_btt" à la fin... Voici le code que j'ai trouvé pour "AdminImagesController.php" : <?php // Usage: // Replace the contents of: // /overrides/classes/ImageManager.php // With this document. Then just add a new image size in the Backoffice : // Preferences -> Images -> Add New // AND name it whatever_btt (attach '_btt' at the end of the name string) // THEN just use this image size where you want // CAUTION! Check if you're using the same version of Prestashop as we do: 1.5.2 // (should work in all 1.5.xs though but we never checked // Good luck - Bazinga Designs // http://www.bazingadesigns.com/en class ImageManager extends ImageManagerCore { /** * Resize, cut and optimize image * * Zoom & Croop when the destination file name * contains the '_timthumb' phrase * - Modified by www.bazingadesigns.com/en * (TimThumb ZoomCrop port) * * @param string $src_file Image object from $_FILE * @param string $dst_file Destination filename * @param integer $dst_width Desired width (optional) * @param integer $dst_height Desired height (optional) * @param string $file_type * @return boolean Operation result */ public static function resize($src_file, $dst_file, $dst_width = null, $dst_height = null, $file_type = 'jpg', $force_type = false) { if (!file_exists($src_file)) return false; list($src_width, $src_height, $type) = getimagesize($src_file); // If PS_IMAGE_QUALITY is activated, the generated image will be a PNG with .jpg as a file extension. // This allow for higher quality and for transparency. JPG source files will also benefit from a higher quality // because JPG reencoding by GD, even with max quality setting, degrades the image. if (Configuration::get('PS_IMAGE_QUALITY') == 'png_all' || (Configuration::get('PS_IMAGE_QUALITY') == 'png' && $type == IMAGETYPE_PNG) && !$force_type) $file_type = 'png'; if (strpos($dst_file, '_btt')!==FALSE) $zoomCrop = true; if (!$src_width) return false; if ($zoomCrop == true) { if (!$dst_width) $dst_width = 0; if (!$dst_height) $dst_height = 0; } else { if (!$dst_width) $dst_width = $src_width; if (!$dst_height) $dst_height = $src_height; } $src_image = ImageManager::create($type, $src_file); $width_diff = $dst_width / $src_width; $height_diff = $dst_height / $src_height; if ($zoomCrop==true) { if ($dst_width>0 && $dst_height<1) { $dst_height = floor ($src_height * ($dst_width / $src_width)); } else if ($dst_height>0 && $dst_width<1) { $dst_width = floor ($src_width * ($dst_height / $src_height)); } $src_x = $src_y = 0; $src_w = $src_width; $src_h = $src_height; $cmp_x = $src_width / $dst_width; $cmp_y = $src_height / $dst_height; if ($cmp_x > $cmp_y) { $src_w = round (($src_width / $cmp_x * $cmp_y)); $src_x = round (($src_width - ($src_width / $cmp_x * $cmp_y)) / 2); } else if ($cmp_y > $cmp_x) { $src_h = round (($src_height / $cmp_y * $cmp_x)); $src_y = round (($src_height - ($src_height / $cmp_y * $cmp_x)) / 2); } } else if ($width_diff > 1 && $height_diff > 1) { $next_width = $src_width; $next_height = $src_height; } else { if (Configuration::get('PS_IMAGE_GENERATION_METHOD') == 2 || (!Configuration::get('PS_IMAGE_GENERATION_METHOD') && $width_diff > $height_diff)) { $next_height = $dst_height; $next_width = round(($src_width * $next_height) / $src_height); $dst_width = (int)(!Configuration::get('PS_IMAGE_GENERATION_METHOD') ? $dst_width : $next_width); } else { $next_width = $dst_width; $next_height = round($src_height * $dst_width / $src_width); $dst_height = (int)(!Configuration::get('PS_IMAGE_GENERATION_METHOD') ? $dst_height : $next_height); } } $dest_image = imagecreatetruecolor($dst_width, $dst_height); // If image is a PNG and the output is PNG, fill with transparency. Else fill with white background. if ($file_type == 'png' && $type == IMAGETYPE_PNG) { imagealphablending($dest_image, false); imagesavealpha($dest_image, true); $transparent = imagecolorallocatealpha($dest_image, 255, 255, 255, 127); imagefilledrectangle($dest_image, 0, 0, $dst_width, $dst_height, $transparent); } else { $white = imagecolorallocate($dest_image, 255, 255, 255); imagefilledrectangle ($dest_image, 0, 0, $dst_width, $dst_height, $white); } if ($zoomCrop==true) imagecopyresampled($dest_image, $src_image, 0, 0, $src_x, $src_y, $dst_width, $dst_height, $src_w, $src_h); else imagecopyresampled($dest_image, $src_image, (int)(($dst_width - $next_width) / 2), (int)(($dst_height - $next_height) / 2), 0, 0, $next_width, $next_height, $src_width, $src_height); return (ImageManager::write($file_type, $dest_image, $dst_file)); } } Est-ce que si je change le test à la ligne 48 : if (strpos($dst_file, '_btt')!==FALSE) par : if (strpos($dst_file, '_btt')!==TRUE) je peux éviter de renommer mes images avec "_btt" à la fin, et au final j'aurai exactement que je veux, ou c'est pas si simple ? Encore merci pour vos réponses ;-) Link to comment Share on other sites More sharing options...
Julien64 Posted October 1, 2013 Share Posted October 1, 2013 Bonjour, Je ne pense pas que vous ayez besoin de toucher au php. Il faut simplement remettre vos formats carrés dans l'admin puis regénérer les images. Il vous restera ensuite à adapter le thème pour les images carrées, notamment dans les CSS. Link to comment Share on other sites More sharing options...
biwix Posted October 1, 2013 Author Share Posted October 1, 2013 Bonjour, En fait comme mon image de base était de forme carrée, et puis ensuite régénérée en rectangle, je n'ai eu qu'à redéfinir une forme carrée et refaire une régénération standard... ça fonctionne car mon image à la base était comme je le souhaitais... Merci à tous, Salutations, Biwix Link to comment Share on other sites More sharing options...
SleT Posted December 26, 2013 Share Posted December 26, 2013 Merci, ce sujet m'a beaucoup servis pour implémenter un plugin jquery qui génère des galeries pour les images de la liste des produits ! ça fonctionne au top en PNG ! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now