【问题标题】:corrupted text characters with Imagemagick label:带有 Imagemagick 标签的损坏的文本字符:
【发布时间】:2018-04-18 02:45:49
【问题描述】:

我遇到了一个无法在本地重现的奇怪错误。但是在 Google Cloud Functions 上,相同的文本通常会做同样的事情,但它也一直是一个滚动的问题 - 有时它会发生,然后神奇地消失了。

以下是转换调用的示例以及生成的损坏文本:

convert -background none -stroke "rgb(0, 0, 0, 0.0)" -fill "rgba(255, 255, 255, 1)" -font ./fonts/FrederickatheGreat-Regular.ttf -pointsize 68 label:"Carly" -trim \( +clone -background "rgba(135, 138, 140, 0.59)" -shadow 80x8+8+10 \) +swap -background none -layers merge +repage -rotate 0 /tmp/1057522377634683.png

在 GCF 上运行的 ImageMagick 版本是:

转换-版本:版本:ImageMagick 6.8.9-9 Q16 x86_64 2017-07-15 http://www.imagemagick.org 版权所有:Copyright (C) 1999-2014 ImageMagick Studio LLC 功能:DPC 模块 OpenMP 代表:bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib

我的本​​地机器上有相同版本的 Imagemagick,但无法重现文本损坏。我怀疑它可能与 Google 上的编译版本有关(注意 2017-7-15 编译日期)

我希望过去有人遇到过这种情况并且知道什么是简单的解决方法 - 提供 RGBA 值、.png 输出类型等是否存在问题。

【问题讨论】:

  • 检查 ImageMagick 用于处理字体渲染的 Freetype 委托版本。该版本的 ImageMagick 也有大约 120 个版本。但它看起来被修补了。有时补丁不好或没有安装或安装不当。所以,是的,它可能是 ImageMagick 的 Google 环境。
  • 嗨@fmw42 - 感谢您的评论。我其实是整理出来的。所以,我正在使用的命令是使用label: 选项,我指定了-stroke,但没有指定-strokewidth,我不完全确定label 选项支持这些...它们与-draw 但我还没有弄清楚如何使用 -draw 进行投影。无论如何,我通过删除 -stoke 值摆脱了时髦的字符。
  • 描边和描边宽度由 label: 支持。但我很困惑为什么你的笔触是完全透明的。

标签: imagemagick google-cloud-functions


【解决方案1】:

问题在于 -stoke 选项没有设置 -strokewidth - 我也不能 100% 确定 label 是否支持这些,我将不得不稍后进行测试。但我的解决方案是从命令中删除 -stroke 并且字体字符停止损坏。

【讨论】:

  • 我使用 ImageMagick 6.9.9.23 Q16 Mac OSX 运行了您的命令 20 次,没有出现任何错误,结果看起来还不错。我怀疑 6.8.9.9 有缺陷,或者你的 Freetype 委托在失败的机器上是旧的。但是,我认为没有理由使用完全透明的笔触。也许这正是你所拥有的并且允许其他颜色。与 -rotate 0 类似,它是无操作的,但无论如何都会处理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
相关资源
最近更新 更多