【发布时间】: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