簡體   English   中英

ImageMagick無法在我的機器上創建文本-Perl

[英]ImageMagick not creating text on my machine - Perl

我最近接手了其他人在項目中的職位。 當以下代碼在其舊計算機上運行時,它可以正常工作。 但是當我運行它時,我得到了一條空白的白線和一個帶有紅色輪廓的黃色矩形。 本質上,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 Mavericks 10.9.3; ImageMagick 6.8.9-1 / PerlMagick 6.88(通過Homebrew安裝)

我想通了大家! 事實證明,這確實是字體的問題。 我在perlmonks帖子上找到了解決方案。 即使使用的字體在計算機上,有時也找不到(但是在其他計算機上,無論出於何種原因)。 因此,必須對該位置進行硬編碼。

將注釋行更改為以下內容:

# font has to be hard-coded in
my $y = $image->Annotate(text=>$text,font=>'/System/Library/Fonts/Courier.dfont',fill=>$fontColor,pointsize=>$fontSize,geometry=>'+0+20');

希望這對遇到此問題的其他人有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM