在使用自制软件安装的 Mac 上使用 Image::Magick 注释图像
Posted
技术标签:
【中文标题】在使用自制软件安装的 Mac 上使用 Image::Magick 注释图像【英文标题】:Annotating images with Image::Magick on mac installed with homebrew 【发布时间】:2018-06-21 14:19:56 【问题描述】:我在我的 Mac 上安装了 ImageMagick 软件和自制软件,我正在使用 Image::Magick Perl 模块。我试图弄清楚如何用一些文本注释图像。我没有尝试过:
$error = $image->Annotate(font => 'Courier', gravity => 'North', pointsize=>100, fill=>'black', text => 'blah blah');
$error = $image->Annotate(font => '/Library/Fonts/Impact.ttf', gravity => 'North', pointsize=>100, fill=>'black', text => 'blah blah');
我想它找不到字体,但可能还有其他问题。没有错误被抛出。我已经用自制软件安装了 ghostscript,但这没有帮助。
identify -list font 的部分输出
Font: Times-BoldItalic
family: Times
style: Italic
stretch: Normal
weight: 700
glyphs: /usr/local/share/ghostscript/fonts/n021024l.pfb
Font: Times-Italic
family: Times
style: Italic
stretch: Normal
weight: 400
glyphs: /usr/local/share/ghostscript/fonts/n021023l.pfb
Font: Times-Roman
family: Times
style: Normal
stretch: Normal
weight: 400
glyphs: /usr/local/share/ghostscript/fonts/n021003l.pfb
【问题讨论】:
使用identify -list font
查看终端中安装了哪些字体。如果没有,请参阅***.com/a/24701602/2836621
也许在终端中试试这个,看看z.png
的样子...convert -size 100x100 xc:white -gravity center -fill red -font /Library/Fonts/Impact.ttf -annotate 0 "Hi there" z.png
也许你在黑底黑字?还是北方的重力把你从页面顶部扔了出去?
尝试将 Gravity 设置为 center
,因为即使您没有设置它也会默认为 NorthWest。
将其设置为 North 或 NorthWest 会使图像的顶部成为文本的底部参考点,即文本的基线。
【参考方案1】:
一般来说,如果您无法使用 ImageMagick 查找文本输出,请尝试以下建议:
建议 1
使用对比鲜明的填充和描边,这样您就可以合理地确定在任何背景上看到您的文字:
magick ... -fill cyan -stroke magenta ...
建议 2
将重力设置为center
,以防超出图像边缘:
magick ... -gravity center ...
建议 3
指定字体文件的完整路径,这样即使它没有配置到其配置文件中,ImageMagick 也能找到它:
magick ... -font /Library/Fonts/Impact.ttf ...
建议 4
加载后重新分页您的图像,以便它忘记以前可能具有的任何旧页面设置,当时它可能是某个较大图像的一部分并被裁剪:
magick ... +repage ...
所以,总而言之,尝试如下命令:
magick -size 100x100 xc:white -gravity center -fill cyan -stroke magenta -font /Library/Fonts/Impact.ttf -annotate 0 "Hi there" result.png
【讨论】:
以上是关于在使用自制软件安装的 Mac 上使用 Image::Magick 注释图像的主要内容,如果未能解决你的问题,请参考以下文章
使用自制软件在 Mac Big Sur 上为 PHP 7.3.24 安装 pgsql 扩展时出现问题