2017-04-06 1 views
0

J'ai des images normales et déformées dans le projet. Je dois redimensionner correctement uniquement les images déforméesComment puis-je déterminer les images déformées avec php imagick?

Comment puis-je vérifier si l'image est déformée ou non avec imagick? Y at-il des propriétés imagick qui peuvent m'aider?

Exemples d'image distordue:

enter image description here enter image description here

+0

Comment définissez-vous une image déformée? – Danack

+0

Des images déformées ont été faites par un code qui a changé les images originales. Peut-être que les images déformées ont été faites en changeant l'orientation: http://stackoverflow.com/questions/19456036/detect-exif-orientation-and-rotate-image-using-imagemagick (j'ai utilisé le code de la deuxième réponse pour obtenir une orientation correcte de l'image) –

+0

Les images étaient définies comme suit: $ imagick = new \ Imagick (BASE_PATH. '/ Uploads'. $ Image-> filename); $ imagick-> resizeimage ($ newWidth, $ newHeight, 0.9, TRUE); $ imagick-> writeimage ($ absCacheName); –

Répondre

0

La signature de la méthode est: Imagick::resizeImage (int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ])

vous manque le paramètre de filtre, comme si l'image est redimensionnée sans conserver le rapport d'aspect.

Essayez de passer dans \ Imagick :: FILTER_LANCZOS comme paramètre de filtre.

+0

Ok, je l'ai compris. Mais la question est un peu différente. Si j'ai beaucoup d'images déjà redimensionnées et que certaines images sont incorrectement redimensionnées, puis-je détecter quelles images ont été redimensionnées correctement et lesquelles? J'ai besoin de cette vérification pour redimensionner seulement les images déformées et incorrectes, pas toutes les images. –

+0

Possiblement imagick avoir des propriétés ou des options ... –

+0

"puis-je détecter quelles images ont été redimensionnées correctement, et lesquelles pas?" - probablement pas, à moins que vous ne puissiez définir ce que signifie déformé. Si c'est juste votre code qui a mordu les images, je suggère simplement de déterminer à la main les images qui s'appliquent à. Je ne crois pas que Imagick stocke des drapeaux pour savoir si les images ont été redimensionnées en images. – Danack