0
画像を失うことなく正方形の画像を作成する必要があります。私はImageMagickを使ってbashスクリプトとして仕事をするツールを見つけましたが、php Imagickでそれを行うことはできないようです。私が見つけたスクリプトがhttp://www.fmwconcepts.com/imagemagick/squareup/index.phpphp imagickを使用して画像をパディングする
からsquareupと呼ばれる
は私のコードは、現在、次のようになります。
$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();
あなたの問題は何ですか? – Bonzo
Squareupは私のスクリプトです。しかし、私はあなたがそれを変換するのを助けるImagickを知らない。なぜPHP exec()から呼び出さないのですか?スクリプトとImageMagickはRGBイメージで実行する必要があり、CMYKでは実行する必要はありません。 – fmw42
単純な切り抜きや四角形にする場合は、http://www.imagemagick.org/Usage/thumbnails/#squareを参照してください。 – fmw42