Je dois créer des images carrées sans perte d'image. J'ai trouvé un outil qui fait le travail en tant que script bash en utilisant ImageMagick mais ne peut jamais sembler capable de le faire avec php Imagick.bourrage d'images en utilisant php imagick
Le script que j'ai trouvé est appelé squareup de http://www.fmwconcepts.com/imagemagick/squareup/index.php
Mon code ressemble à ce moment:
$image = new Imagick($srcimage);
$image->setCompressionQuality(100);
if ($image->getImageHeight() <= $image->getImageWidth())
$image->resizeImage($maxsize, 0, Imagick::FILTER_MITCHELL, 1);
else
$image->resizeImage(0, $maxsize, Imagick::FILTER_MITCHELL, 1);
$h=$image->getImageHeight();
$w=$image->getimagewidth();
$hlarge=0;
$wlarge=0;
if ($w>$h) {
$diff=intval(($w-$h)/2);
$wlarge=1;
$h=$w;
} else {
$diff=intval(($h-$w)/2);
$w=$h;
$hlarge=1;
}
$newimage = new Imagick();
if ($image->getImageColorspace() == Imagick::COLORSPACE_CMYK) {
$fg="cmyk(0,0,0,0)";
$fg_pixel=new ImagickPixel($fg);
$newimage->newImage($w, $h, $fg_pixel);
$newimage->setImageColorspace(Imagick::COLORSPACE_CMYK);
} else {
$newimage->newImage($w, $h, new ImagickPixel('#ffffff'));
}
$newimage->compositeImage($image,\Imagick::COMPOSITE_OVER,0,0);
$newimage->setImageCompression(Imagick::COMPRESSION_JPEG);
$newimage->setImageCompressionQuality(100);
$newimage->stripImage();
$newimage->writeImage($contactimage);
$newimage->destroy();
$image->destroy();
Quel est votre problème? – Bonzo
Squareup est mon script. Mais je ne connais pas Imagick pour vous aider à le convertir. Pourquoi ne pas simplement l'appeler de PHP exec()? Le script et ImageMagick doivent s'exécuter sur des images RVB et non sur CMJN. – fmw42
Si vous voulez recadrer simplement ou mettre en carré, voir http://www.imagemagick.org/Usage/thumbnails/#square – fmw42