J'utilise l'extension Yii2 Imagine et j'ai besoin de créer des images 150x150
à partir des téléchargements d'utilisateurs.Recadrer une image du centre dans la plus grande case que vous pouvez faire dans Yii2 Imagine?
Actuellement, je suis en train de faire quelque chose comme ceci:
use yii\imagine\Image;
....
Image::thumbnail($save_path, $img_size, $img_size)->save($save_path);
Évidemment, cela peut causer des problèmes si l'une des dimensions est < 150px
une fois redimensionné.
Donc ce que je suis en train de comprendre avant tout est comment pour recadrer l'image dans un carré avant il est redimensionnée, de sorte que quand je le redimensionnez il n'y aura pas un rapport quelconque aspect questions.
Maintenant, je sais que vous pouvez recadrer l'image avec quelque chose comme:
Image::crop($save_path, $img_size, $img_size, [5, 5]);
Mais le problème est en train de faire ce avant redimensionner l'image ne sera probablement pas vous donner ce que vous voulez puisque l'image peut être si grand et le recadrage après le redimensionnement ne fonctionnera pas non plus, car une dimension peut déjà avoir été réduite à < 150px
.
Donc ce que je suis en train de travailler est comment puis-je recadrer l'image avant le redimensionnement à la place taille maximale possible et du centre vers l'extérieur?
Edit:
Ok, j'ai trouvé un moyen de gérer cela, mais je me demandais s'il y avait de toute façon d'accomplir le dessous facilement ou vais-je avoir besoin de coder moi-même?
- travail la plus petite dimension (largeur ou hauteur)
- Ensuite, prendre cette dimension et ce sera la plus grande place, vous pouvez avoir
- travailler sur la façon de positionner que dans le centre de la culture
- maintenant, vous pouvez faire le redimensionnement
- Si après la redimensionnement de chaque côté est inférieur à 150, créer la nouvelle image de fond blanc, puis centrer la nouvelle image sur cette
- Enregistrer l'image
- Fait! Vous ne pouvez pas utiliser le quatrième paramètre de Image :: thumbnail()?
si vous ne pouvez pas accomplir avec 'imaginer/Image' essayer une autre extension comme' Gd \ Imagine' – Ripper
il peut peut-être vous aider https: //imagine.readthedocs .io/fr/latest/_static/API/Imagine/Image/Box.html – bxN5