2012-11-14 30 views
2

我有一个摄像头,并希望添加一些注释图像,但抗锯齿奇怪。我会尽力解释:php imagick注释antialiasing

我有一个这样的形象:Source image

然后,添加半透明的矩形,并把文字在它:

 // add background black rectangle 
     $draw->setFillColor('black'); 
     $draw->setFillOpacity(0.5); 
     $draw->rectangle(0, 10, $cam['width'], 70); // Draw the rectangle 
     // add lead text 
     $draw->setFont('ARIALBD.TTF'); 
     $draw->setFontSize(14); 
     $draw->setFillColor('white'); 
     $draw->annotation(20, 35, $cam['text']); 
     // add timestamp 
     $draw->setFont('ARIAL.TTF'); 
     $draw->setFontSize(12); 
     $draw->setFillColor(new ImagickPixel('#f3ac01')); 
     $draw->annotation(20, 50, date("Y-m-d H:i:s")); 
     $img->drawImage($draw); 

而得到这样的:

Adding text

咦,但时间戳看起来ulgy(看看分钟/秒)。试图禁用抗锯齿:

$draw->setTextAntialias(false); 

,现在看起来依然难看(看小时),但现在它有锋利的边缘:

antialiasing turned off

我怎样才能用智能抗锯齿,如导致这(我知道PS使用自己的抗锯齿,但IMagickDraw对付真正的坏结果):

Want this

+0

使用更好的字体。 – Incognito

+0

Arial不是“好字体”?不要这样认为 –

+0

有些字体效果更好。一些字体和系统支持亚像素渲染。 – Incognito

回答

1

对于我来说,升ooks更像整个图像的压缩级别比保存时的抗锯齿,看看setCompressionQuality,并调整压缩质量,直到你避免在图像中的“模糊”。

+0

谢谢!现在它工作正常! –

+0

那不是压缩吗?我会记住setTextAntialias,以防万一我需要在将来使用它。感谢接受无论如何 – aleation

+0

结果:http://ctepeo.by/share/2012-11-20_15-47-20.png 看起来很迷人!我已经使用的代码: $ draw-> setTextAntialias(true); $ img-> setCompression(Imagick :: COMPRESSION_JPEG); $ img-> setCompressionQuality(100); 现在一切正常!在手动php.net中没有默认值,所以我认为它是100. –

1

先尝试不同的字体。这里是open sansanother link)字体的示例。 enter image description here

+0

在ImageMagick上使用自定义字体可能会让我非常头疼,因为您必须在服务器上安装这些字体。 – caiosm1005