所以我试图在今天与Imagick画一条线。听起来很简单吧?用ImagickDraw绘制单像素线时出现奇怪的阴影/模糊
这里是我的代码:
$image = new Imagick();
$image->newImage(100, 100, 'white');
$image->setImageFormat('png');
$line_color = new ImagickPixel('#555555');
$line_weight = 1;
$line = new ImagickDraw();
$line->setResolution(100, 100);
$line->setStrokeWidth($line_weight);
$line->setStrokeColor($line_color);
$line->line(20, 20, 20, 60);
$image->drawImage($line);
$image->writeImage('test.png');
没什么好惊讶,我创建了一个100x100的黑白图像,我在1在555555设置线颜色,线宽,创建我ImagickDraw对象,并告诉他画一条线。
的问题是,输出看起来像这样:http://i.stack.imgur.com/hM8QS.png
这看起来不错,在第一,直到你放大和看到这一点:http://i.stack.imgur.com/O6Yie.png
我试了几种设置的颜色,重量和分辨率,但我无法摆脱这种奇怪的阴影/模糊效果。它与我绘制的几乎任何东西(线,矩形等...)除了点。所以如果我想要的话,我可以用一系列点和一个简单的for循环创建我的单像素线,但它确实会很繁琐。特别是因为我不会画这条线。
那么,任何人都知道发生了什么?我怎样才能摆脱这种行为?
谢谢你的作品!我认为antialias默认是关闭的,所以我之前测试的时候只是删除了setStrokeAntialias语句而不是实际上把它设置为false。我现在和#555555颜色有同样的错误,但它并不重要。 – TheAthenA714