このコードを使用して、サイズ変更された画像をシャープにしようとしています:
imageconvolution($imageResource, array(
array( -1, -1, -1 ),
array( -1, 16, -1 ),
array( -1, -1, -1 ),
), 8, 0);
上記のコードを使用して透明な PNG 画像をシャープにすると、左上隅に黒い点が表示されます (さまざまな畳み込みカーネルを試しましたが、結果は同じです)。サイズを変更した後、画像は問題ないように見えました。
1枚目の画像がオリジナルです
2枚目の画像は加工したものです
編集:何が間違っているのですか?ピクセルから取得した色を使用しています。
$color = imagecolorat($imageResource, 0, 0);
imageconvolution($imageResource, array(
array( -1, -1, -1 ),
array( -1, 16, -1 ),
array( -1, -1, -1 ),
), 8, 0);
imagesetpixel($imageResource, 0, 0, $color);
imagecolorat
正しい機能ですか?それとも位置は合っていますか?
EDIT2 : 座標を変更しましたが、まだ運がありません。imagecolorat
(この投稿によると)によって与えられた透明性を確認しました。これはダンプです:
array(4) {
red => 0
green => 0
blue => 0
alpha => 127
}
アルファ 127 = 100% 透明。これらのゼロは問題を引き起こす可能性があります...