Imagemagick 使用Image Magick生成低分辨率黑白文本
我需要在ImageMagick中生成文本的低分辨率黑白图像。这些图像将绘制在一个小型LED矩阵中。文本需要有7个像素的高度 目前,我正在使用:Imagemagick 使用Image Magick生成低分辨率黑白文本,imagemagick,Imagemagick,我需要在ImageMagick中生成文本的低分辨率黑白图像。这些图像将绘制在一个小型LED矩阵中。文本需要有7个像素的高度 目前,我正在使用: convert -negate -threshold 15% -font Courier -size 80x11 caption:'hello' out.bmp 输出图像: 即使高度超过我的需要,由于低分辨率和抗锯齿校正,字母也不漂亮和对称。有人这样做过吗?能帮我吗 版本:ImageMagick 6.8.9-9 Q16 x86_64您没有告诉我们Im
convert -negate -threshold 15% -font Courier -size 80x11 caption:'hello' out.bmp
输出图像:
即使高度超过我的需要,由于低分辨率和抗锯齿校正,字母也不漂亮和对称。有人这样做过吗?能帮我吗
版本:ImageMagick 6.8.9-9 Q16 x86_64您没有告诉我们ImageMagick或平台的版本,并且您没有显示您的结果,以便我们查看可能的错误。此外,您的ImageMagick语法不正确,尽管ImageMagick 6相当宽容 这是我使用ImageMagick 6.9.10.8 Q16 Mac OSX Sierra得到的。第一个输出为8像素高,第二个输出按1000%(10倍)缩放 这个论坛似乎并没有将bmp转换成一种可用的显示格式,所以我用GIF代替bmp。但无论是BMP还是GIF,我的结果都是一样的
convert -size x8 -font Courier label:'hello' -negate -threshold 20% +write out.gif -scale 1000% out2.gif
我尝试过改变阈值,但大得多或小得多的值会使情况变得更糟。大约10-30%的范围产生相同的结果 我还尝试使用-单色代替-阈值,得到以下结果:
convert -size x8 -font Courier label:'hello' -negate -monochrome +write out3.gif -scale 1000% out4.gif
你可以试试点阵字体。看见我没有试过任何一款。您没有告诉我们ImageMagick或platform的版本,您也没有向我们展示您的结果,以便我们了解可能的错误。此外,您的ImageMagick语法不正确,尽管ImageMagick 6相当宽容 这是我使用ImageMagick 6.9.10.8 Q16 Mac OSX Sierra得到的。第一个输出为8像素高,第二个输出按1000%(10倍)缩放 这个论坛似乎并没有将bmp转换成一种可用的显示格式,所以我用GIF代替bmp。但无论是BMP还是GIF,我的结果都是一样的
convert -size x8 -font Courier label:'hello' -negate -threshold 20% +write out.gif -scale 1000% out2.gif
我尝试过改变阈值,但大得多或小得多的值会使情况变得更糟。大约10-30%的范围产生相同的结果 我还尝试使用-单色代替-阈值,得到以下结果:
convert -size x8 -font Courier label:'hello' -negate -monochrome +write out3.gif -scale 1000% out4.gif
你可以试试点阵字体。看见我没有尝试过任何一种方法。我倾向于输出大于要求的字母,然后修剪任何多余的空间,以便最大限度地利用可用的分辨率,然后调整大小以满足您的特定需要:
convert -size 320x32 -font Courier label:'hello' -trim +repage -resize 80x8 +write out.gif
我倾向于输出比要求大的字母,然后修剪任何多余的空间,以便最大限度地利用可用的分辨率,然后根据您的具体需要调整大小:
convert -size 320x32 -font Courier label:'hello' -trim +repage -resize 80x8 +write out.gif
马克,我想他想要一个二进制结果。但你有个好主意 让我们看看Mark的结果,阈值,然后缩小到8像素高。这个ImageMagick命令似乎比我以前的帖子工作得更好 马克的产出:
阈值结果: 缩放结果:
也许让马克的图像更大,选择更好的阈值会产生更好的结果。马克,我想他想要一个二进制结果。但你有个好主意 让我们看看Mark的结果,阈值,然后缩小到8像素高。这个ImageMagick命令似乎比我以前的帖子工作得更好 马克的产出:
阈值结果: 缩放结果:
也许将Mark的图像放大并选择更好的阈值会产生更好的效果。您可以尝试一些旧的X11字体。这些都是手工绘制的,而不是从一组曲线渲染,所以它们看起来非常小 例如,如果我运行
xfontsel
我会得到如下结果(为了清晰起见放大):
查看
/usr/share/fonts/X11/misc
您可以尝试一些旧的X11字体。这些都是手工绘制的,而不是从一组曲线渲染,所以它们看起来非常小
例如,如果我运行xfontsel
我会得到如下结果(为了清晰起见放大):
看看
/usr/share/font/X11/misc
我找到的解决方案是使用TrueType字体。刚刚从互联网上得到了一种免费字体,并按照它的大小使用
注意:也切换为OpenCV。我的Python应用程序动态生成图像。每分钟调用ImageMagick数次(可能接近100次)的成本太高
发布一个片段,希望对您有所帮助
import cv2 as cv
from PIL import ImageFont, ImageDraw, Image
# Creates a black image with 80x10 size
img = Image.new('RGBA', (80, 10), (0,0,0,0))
draw = ImageDraw.Draw(img)
# Load TrueType font of height size 8
font = ImageFont.truetype("font.ttf", 8)
# Draw text using the loaded font
draw.text((0, 0), "Hello World!", font=font)
img.save("out.bmp")
输出图像:
我找到的解决方案是使用TrueType字体。刚刚从互联网上得到了一种免费字体,并按照它的大小使用 注意:也切换为OpenCV。我的Python应用程序动态生成图像。每分钟调用ImageMagick数次(可能接近100次)的成本太高 发布一个片段,希望对您有所帮助
import cv2 as cv
from PIL import ImageFont, ImageDraw, Image
# Creates a black image with 80x10 size
img = Image.new('RGBA', (80, 10), (0,0,0,0))
draw = ImageDraw.Draw(img)
# Load TrueType font of height size 8
font = ImageFont.truetype("font.ttf", 8)
# Draw text using the loaded font
draw.text((0, 0), "Hello World!", font=font)
img.save("out.bmp")
输出图像:
真正的问题是什么?你是在用树莓圆周率在LED矩阵上写字吗?请更具体地说明您实际想要做什么。问题是输出图像中的字母格式不正确。该应用程序将在SoM上运行,但我现在正在我的开发人员工作站上运行。您可以通过定义自己的字体来获得更清晰的文本-这并不太难。。。真正的问题是什么?你是在用树莓圆周率在LED矩阵上写字吗?请更具体地说明您实际想要做什么。问题是输出图像中的字母格式不正确。该应用程序将在SoM上运行,但我现在正在我的开发人员工作站上运行。您可以通过定义自己的字体来获得更清晰的文本-这并不太难。。。问题是,在应用阈值(像素需要是白色或黑色,或开或关)后,字母不再对称。不知道我的方法是否是你