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

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^4: GD + layering text over existing image
by ultranerds (Hermit) on Nov 25, 2008 at 19:56 UTC
    Hi,

    Your a star!

    GD::Image->trueColor( 1 );

    ...works like a charm!"

    Thanks for your time :)

    Andy