in reply to Re^2: GD + layering text over existing image
in thread GD + layering text over existing image
whats going on with the text color. Could it have something to do with the pallet of the image?
Without having access to the original images I'd guess: probably.
Perhaps the easiest way to avoid the problem would be to ensure that the image files get loaded as 'truecolor' (Ie. full 24-bit colour). You can do that by setting GD::Image->trurColor( 1 ); prior to loading the image. You'd then dump the colorAllocate() call and specify the text color directly using its rgb value. Simply 0 for black:
... ## Set the default to truecolor images. GD::Image->trueColor( 1 ); # create a new image my $im = GD::Image->new( $filename ); if ($size eq "l") { $im->string(gdMediumBoldFont,27,44,"Secure ". GT::Date::date_g +et(), 0 ); } elsif ($size eq "m") { $im->string(gdMediumBoldFont,29,26,"Secure ". GT::Date::date_g +et(), 0 ); } elsif ($size eq "s") { $im->string(gdTinyFont,15,26,"Safe " . GT::Date::date_get() , +0); } binmode STDOUT; print $im->png;
For colors other than black, I use a simple utility sub to convert rgb triples to their integer representation:
sub rgb2n{ unpack 'N', pack 'CCCC', 0, @_ } rgb2n( 255, 0, 0 ); ## Red rgb2n( 0, 255, 0 ); ## Green rgb2n( 0, 0, 255 ); ## Blue
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: GD + layering text over existing image
by ultranerds (Hermit) on Nov 25, 2008 at 19:56 UTC |