我正在尝试使用以下代码锐化调整大小的图像:
imageconvolution($imageResource, array(
array( -1, -1, -1 ),
array( -1, 16, -1 ),
array( -1, -1, -1 ),
), 8, 0);
当透明PNG图像被锐化时,使用上面的代码,它在左上角出现了一个黑点(我尝试了不同的卷积核,但结果是一样的)。调整大小后,图像看起来不错。
第一张图是原图
第二张图片是锐化的
编辑:我怎么了?我正在使用从像素检索到的颜色。
$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
}
Alpha 127 = 100% 透明。那些零可能会导致问题...