gri6507 has asked for the wisdom of the Perl Monks concerning the following question:

Fellow monks,

I am trying to create an image which is basically a semitransparent background and some text in the middle. From what I could see here, Image::Magick is highly recommended. Since I have never used it before, I started with a simple program to add text to a blank picture, but ran into a problem:

use strict; use Image::Magick; my ($image, $x); $image = Image::Magick->new; $x = $image->Set(size=>'100x100'); warn "$x" if $x; $x = $image->ReadImage('xc:white'); warn "$x" if $x; my $text = 'Works like magick!'; $x = $image->Annotate(text=>$text); warn "$x" if $x; $x = $image->Write('x.png'); warn "$x" if $x; undef $image;
which produces a white image with no text on it and 'Exception 415: UnableToReadFont (/usr/X11R6/lib/X11/fonts/drakfont/ttf/arial.ttf) at try.pl line 11' in the terminal. How does Image::Magick know to look at a specific place for fonts? I know I have Arial font installed (somewhere - how do I find it?).

Thanks for your help.

Replies are listed 'Best First'.
Re: Image::Magick Annotate problem
by johnnywang (Priest) on Oct 10, 2005 at 17:40 UTC
    It looks like you need to set the font path, using something like: "xset fp+ /usr/local/share/lib/X11/fonts"
Re: Image::Magick Annotate problem
by gri6507 (Deacon) on Oct 10, 2005 at 18:11 UTC
    After extensive googling and simply trying something out on a whim, here's what I came up with that works:
    $x = $image->Annotate(font=>'/usr/share/fonts/bitstream/Vera.ttf', fil +l=>'#00FF00', pointsize=>12, x=>10, y=>30, text=>$text); warn "$x" if + $x;
    Thanks for your help.
Re: Image::Magick Annotate problem
by GrandFather (Saint) on Oct 11, 2005 at 01:27 UTC

    You may be interested in this which generates a thumbnail and a preview picture with overstruck translucent text.


    Perl is Huffman encoded by design.
Re: Image::Magick Annotate problem
by blahblah (Friar) on Oct 12, 2005 at 02:16 UTC
    In my experience, I have had significant speed increases using Graphics::Magick as opposed to Image::Magick. Just my 2c - not certain how frequently you plan to use it.