2

複数の既存の画像の画像を構成し、それにモーション ブラーを適用しようとしています。すべての画像を描画するために、透明なキャンバスを使用しています。結果は次のとおりです。ここに画像の説明を入力

ご覧のとおり、ぼやけた部分は、個々の画像の不透明な部分を残しません。それらの部分の外側をぼかすにはどうすればよいですか?

更新: これは、エッジもぼかすことで私が意味したものです:

ここに画像の説明を入力

これが私のコードです:

header("Content-Type: image/png");

$images = array("a.png","b.png","c.png");

$canvas = new Imagick();
$canvas->newImage(128*3, 128, new ImagickPixel("rgba(0,0,0,0)"));
$canvas->setImageFormat("png");

for($i=0; $i<count($images); $i++)
{
    $img = new Imagick($images[$i]);
    $canvas->compositeimage($img, Imagick::COMPOSITE_DEFAULT, $i*128, 0);
}
$canvas->motionblurimage(100, 40, 90);

echo $canvas;

これを修正する方法や指示をありがとう!

4

1 に答える 1

3

チャネルのパラメータを追加してみてください:

$canvas->motionblurimage(100, 40, 90, Imagick::CHANNEL_ALL);

デフォルトのチャンネル設定では効果が透明でない部分に限定されていると思います。

その正確な線を使用すると、画像が本当にぼやけます。おそらく、必要以上にぼやけます。最初の 2 つの値を減らす必要があるかもしれません。

于 2013-02-24T12:00:50.250 に答える