这是我的php文件( arc.php ),应该会产生一个粗半弧:
<?php
$img = imagecreatetruecolor(2000, 1000);
$white = imagecolorallocate($img, 255, 255, 255);
imagesetthickness($img, 200);
imagearc($img, 1000, 1000, 1900, 1900, 180, 360, $white);
imagepng($img);
imagedestroy($img);
图像是通过cli生成的:
php arc.php > arc.png
到目前为止,这么好......现在,有人知道为什么我会在图像中得到那些不完美之处。
答案 0 :(得分:2)
imagesetthickness
的{{3}}似乎暗示椭圆和圆弧在厚度设置方面效果不佳。无论这是一个错误还是一个功能都是有争议的。无论如何,建议的解决方法是使用较小的厚度并重复绘制越来越大的形状。
在您的情况下,它看起来像:
<?php
$img = imagecreatetruecolor(2000, 1000);
$white = imagecolorallocate($img, 255, 255, 255);
// Slightly thicker than 1 pixel to compensate pixel aliasing
imagesetthickness($img, 2);
$thickness = 200;
for ($i = $thickness; $i > 0; $i--) {
imagearc($img, 1000, 1000, 1900 - $i, 1900 - $i, 180, 360, $white);
}
imagepng($img);
imagedestroy($img);
生成以下图像:comments in the documentation
您可能需要稍微调整一下结果,但这应该足以让您从正确的路径开始。