我正在制作一个 PHP 图像脚本,它将在给定半径处创建圆圈。
我用过:
<?php
imagefilledellipse ( $image, $cx, $cy, $w, $h, $color );
?>
但讨厌它产生的粗糙边缘。所以我在考虑制作或使用我将输出的圆形字体:
<?php
imagettftext ( $image, $size, $angle, $x, $y, $color, 'fontfile.ttf', $text );
?>
这样字体会产生一个边缘平滑的圆。我的问题是使“字体大小”与“半径大小”匹配。
有什么想法吗?或者可能会在圆上产生平滑边缘的 PHP 类会很棒!
谢谢。
最佳答案
为了快速而肮脏的抗锯齿,将图像设为所需大小的两倍,然后缩小采样至所需大小。
$circleSize=90;
$canvasSize=100;
$imageX2 = imagecreatetruecolor($canvasSize*2, $canvasSize*2);
$bg = imagecolorallocate($imageX2, 255, 255, 255);
$col_ellipse = imagecolorallocate($imageX2, 204, 0, 0);
imagefilledellipse($imageX2, $canvasSize, $canvasSize, $circleSize*2, $circleSize*2, $col_ellipse);
$imageOut = imagecreatetruecolor($canvasSize, $canvasSize);
imagecopyresampled($imageOut, $imageX2, 0, 0, 0, 0, $canvasSize, $canvasSize, $canvasSize*2, $canvasSize*2);
header("Content-type: image/png");
imagepng($imageOut);
关于PHP:创建边缘光滑的圆、图像或字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444340/