我最近接手了别人在一个项目上的职位。当下面的代码在他们的旧机器上运行时,它运行良好。但是当我运行它时,我得到一个空白的白线,带有一个带有红色轮廓的黄色矩形。本质上,Draw() 方法工作正常,但 Annotate() 方法没有做任何事情。无论我为文本、字体、字体大小或颜色传递什么值,都不会显示任何文本。
以下是相关代码:
my ($length,$width,$boxRef,$text,$font,$fontSize,$fontColor,$outFile) = @_;
my $image = Image::Magick->new;
$image->Set(size=>$length."x".$width);
$image->ReadImage('xc:white');
$image->Draw(primitive=>'rectangle',stroke=>'red',fill=>'yellow',points=>"$$boxRef[0],$$boxRef[1],$$boxRef[2],$$boxRef[3]");
my $y = $image->Annotate(text=>$text,font=>$font,fill=>$fontColor,pointsize=>$fontSize,geometry=>'+0+20');
warn "$y" if "$y";
my $x = $image->Write($outFile);
warn "$x" if "$x";
undef $image;
我很确定代码没有问题,因为其他更简单的脚本也不起作用。我相信我的机器或 ImageMagick 的安装有问题,但我不知道出了什么问题。
我的老板说他记得上一个人在字体问题上苦苦挣扎,所以也许这与它有关?过去一天左右我一直在做一些挖掘工作,但我没有找到任何与我的问题很相似的东西,可以提供一个很好的解决方案。
有谁知道为什么我不能让 ImageMagick 显示文本?
关于我的设置的一些信息:
OS X 小牛队 10.9.3;ImageMagick 6.8.9-1 / PerlMagick 6.88(通过 Homebrew 安装)