2010-04-06 80 views
2

我想在特定图像上添加文本。它的工作完美,但图像质量低,特别是papyrus.ttf字体。我该如何提高图像中文字的质量。但我需要高质量来打印输出。 这是我的代码..它非常简单。php gd图像质量

header("Content-Type: image/jpeg"); 
$im = imagecreatefromjpeg("cosmos.jpg"); 
$black = ImageColorAllocate($im, 0, 0, 0); 
Imagettftext($im, 14, 0, 10, 15, $black, 'papyrus.ttf', "Corey and Lisa "); 
Imagettftext($im, 14, 0, 10, 35, $black, 'papyrus.ttf', " 1994, june"); 
Imagejpeg($im, '', 100); 
ImageDestroy($im); 

下载:http://wneeds.com/gdtest.zip

回答

5

如果imageTTFText在质量失败,下一步是尝试ImageFTText()。它使用FreeType库来渲染字体,这通常意味着更好的质量。它需要被安装并编译到PHP中才能正常工作,这是最常见的。尝试调用函数,你会看到是否是这种情况。

如果不行,下一步就是使用ImageMagick,通过命令行或通过适当的PHP扩展。但首先尝试使用Freetype,它已经足够了。

+0

完全同意。如果你不关心资源,你可以尝试使图像比需要的大,缩小到你需要的大小,这应该是字体质量的轻微改善,但是这有点浪费资源。 – 2010-04-06 20:08:19

+0

感谢大家。我已经尝试过imagefttext()。但质量不好。我以前没有使用imagemagick。所以我认为我必须继续这样做。但我期待更多来自gd。我提供的代码是一个简单的..但在我的系统中,我使用动态消息动态数据包。所以我必须改变很多东西,如果我去与图像魔术。 @pekka可以使用imageFTText()检查代码并检查输出。你可以找出最新情况。可能是我做错了。我会感谢你,如果你改变了来源,给我一个简单的解决方案。再次感谢。 – apueee 2010-04-07 02:58:41

+0

@apu你可以发布一些真实实例的图片,以及图片应该是什么样子? – 2010-04-07 09:54:26