Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Imagemagick渲染到单色图像文件的文本看起来已变形_Imagemagick_Imagemagick Convert - Fatal编程技术网

使用Imagemagick渲染到单色图像文件的文本看起来已变形

使用Imagemagick渲染到单色图像文件的文本看起来已变形,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,编写了一行代码,使用Imagemagick的“convert”实用程序呈现文本字符串: convert -background white -fill black -pointsize 8 -font ARIAL.TTF label:"AaBbYyZz" +dither -monochrome text.png 具体来说,我使用的是Windows 3.1安装中的ARIAL.TTF 它有点有效,但有时文本看起来很奇怪。让我告诉你我的意思。下面是Win3.1中字符串AaBbYyZz与IM渲染的图像

编写了一行代码,使用Imagemagick的“convert”实用程序呈现文本字符串:

convert -background white -fill black -pointsize 8 -font ARIAL.TTF label:"AaBbYyZz" +dither -monochrome text.png
具体来说,我使用的是Windows 3.1安装中的ARIAL.TTF

它有点有效,但有时文本看起来很奇怪。让我告诉你我的意思。下面是Win3.1中字符串AaBbYyZz与IM渲染的图像的对比示例:两者都是8磅

它在Win3.1中的显示方式:

下面是IM如何使用完全相同的TTF文件以完全相同的点大小呈现完全相同的字符串:

是什么导致了这种缺陷,如何使它看起来像Win3.1渲染一样干净,或者至少使它看起来更好


提前感谢。

ImageMagick在渲染字体时也将使用-density设置。您的Windows显示字体示例可能使用96dpi的分辨率,默认的ImageMagick分辨率为72dpi。试试这样的

convert -background white -fill black -density 96 -pointsize 8 ^
   -font ARIAL.TTF label:"AaBbYyZz" +dither -monochrome text.png

您可以将pointsize增加到11或将密度增加到96。两者的效果大致相同,但都不如Windows渲染效果好:

如您所见,如果使用灰度而不是单色,则外观会得到改善

我不能保证我使用的是相同的Arial字体。我在一个没有Arial的Ubuntu平台上,所以我按照 下载并安装一个