0

PHP imagick エクステンションで選択位置の画像をトリミングする方法はありますか?

私はphp 5.3+でimagick php拡張機能を使用しています。

以下のように位置をトリミングする方法を知っている人は、これを私と共有してください

500 ピクセルの正方形の画像があり、上部の 200 ピクセル (左側) を下部の 400 ピクセルの右側にトリミングしたいと考えています。

以下の私の例を確認してください。

例..

例のオリジナル

出力..

出力は次のようになります

4

1 に答える 1

4

このコードが役立つことを願っています。

$mask = new Imagick();
$mask->newimage(500, 500, new ImagickPixel('transparent'));
$mask->setimageformat('png');
$polygon = new ImagickDraw();
$polygon->setFillColor(new ImagickPixel('black'));
/*
  You didn't specified from where to start the crop and where to end it, 
  so just assumed those values
*/
$polygon->polygon(array(
    array('x' => 200, 'y' => 0),
    array('x' => 400, 'y' => 0),
    array('x' => 450, 'y' => 500),
    array('x' => 250, 'y' => 500),
    array('x' => 200, 'y' => 0),
));
$mask->drawimage($polygon);
$image = new Imagick();
$image->readimage("Your source image path :) ");
$image->setImageFormat('png');
$image->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$image->setImageMatte(true);
$image->compositeimage($mask, Imagick::COMPOSITE_DSTIN, 0, 0, Imagick::CHANNEL_ALPHA);
$image->trimimage(0);
header('Content-Type: image/png');
echo $image;
die();
于 2013-03-19T15:02:43.093 に答える