Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Creating Tiff's from perl

by mpeters (Chaplain)
on Jul 11, 2005 at 15:17 UTC ( [id://473971]=note: print w/replies, xml ) Need Help??


in reply to Creating Tiff's from perl

Crazy as this sounds, I had to to almost the exact same thing recently. I too used Imager. Not only did my images need text in exact locations, but they also needed certain markings, etc. Here's how I did it:

  • First create a tiff of the desired size with any needed markings, at 600 dpi and black and white mode.
  • In perl, use Imager to open that image, create a font, and then write to it in the specified coordinates. Something like:
    my $img = Imager->new(); $img->open( file => '/path/to/tiff/file' ); my $color = Imager::Color->new("#000000"); my $font = Imager::Font->new( file => '/path/to/ttf/font', color => $color, ); $img->string( text => $stuff_to_write, x => $x, y => $y, font => $font, );
My project also had the requirement that each letter of each word need to be in a certain place, so I just had a wrapper sub that would take a word and the x/y coords, split the word into individual letters and then use a 'spacing' var to increment the x value and print each letter one by one.

HTH

-- More people are killed every year by pigs than by sharks, which shows you how good we are at evaluating risk. -- Bruce Schneier

Replies are listed 'Best First'.
Re^2: Creating Tiff's from perl
by JediWizard (Deacon) on Jul 11, 2005 at 15:44 UTC

    Thank you for you advice. This code does come closer to what I want, but not quite there yet. Even with a one bit input image, with Group4 fax compression, the outputed image becomes 8 bit, without compression.


    They say that time changes things, but you actually have to change them yourself.

    —Andy Warhol

      I'm sorry, I forgot to show how to write out the image, silly me!
      $img->write( { file => $tmp->filename, type => 'tiff', class => 'fax', } );
      And then in order to get the Group4 compression I did resort to ImageMagick's convert util.
      system("convert -page Letter -compress Group4 $filename $filename") +;
      The last part I'm still not completely happy with, but since this is a batch process I didn't have to worry so much about having the extra system call.

      -- More people are killed every year by pigs than by sharks, which shows you how good we are at evaluating risk. -- Bruce Schneier

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://473971]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (4)
As of 2025-02-16 11:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found