How can I tint transparent PNG files in PHP? - php

I have a transparent PNG image. The transparent areas need to remain completely transparent, but the other areas need tinting with a particular hue.
What's the best way to do this using GD?
Cheers,
James

The above solution didn't work for me.
You are filling alpha region here with red; that I believe is not the objective. Objective is to tint the rest of the image and leave the alpha unchanged.
(Also, wrong use of function imagecolorallocate, you should use imagecolorallocatealpha.)
I managed to use imagefilter and colorize as follows:
imagefilter($image, IMG_FILTER_COLORIZE, 0, 255, 0, 30);
to apply tinting.

The GD library does support alpha transparency so this should not be a problem. Here's how I'd put it together - you may need to tweak this, but the gist of it should be there.
Red/green/blue are 0-255. Alpha is 0-127 (127 being fully transparent). This code should apply a 50% red tint to the image "original.png" and output as "output.png".
<?php
$red = 255;
$green = 0;
$blue = 0;
$alpha = 63
$src_img = imagecreatefrompng("original.png");
$tint_img = imagecreatetruecolor(imagesx($im_src), imagesy($im_src));
$tintcolor = imagecolorallocate($tint_img, $red, $green, $blue, $alpha);
imagefill($tint_img, 0, 0, $tintcolor);
imagecopymerge($tint_img, $src_img, 0, 0, 0, 0, imagesx($im_src), imagesy($img_src), 100);
imagepng("output.png");
?>

Related

Black background on GIF instead of transparency in PHP using imagegif()

Edit 2:
SUCCESS! many thanks to moycakes!
The correct way to convert a PNG to a GIF while retaining transparency goes as follows:
$input = "data:image/png;base64,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";
$image = imagecreatefrompng($input);
imagesavealpha($image, true);
imagecolortransparent($image, 127<<24);
imagegif($image, 'img/test.gif');
GOSH! two days for such a simple few lines of code >__<
Thank you to everyone who posted a suggestion.
old post:
Alright, I'm at my wits end now. (Why is the GD library in PHP so confusing??)
I've been at this for several hours two days now.. and I just can't get PHP to make a GIF from a PNG with a transparent background.
There are several posts about this on StackOverflow but none of the solutions provided really helped me at all. I always end up with either a black background image or everything black in my image becomes transparent except for the background (or just everything stays black).
I've typed imagecolorallocate and imagecolortransparent so many times that these commands have lost their meaning to me.. >___<
my code looks like this:
$input = "data:image/png;base64,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";
list($ignore, $imgData) = explode(',', $input);
$image = imagecreatefromstring(base64_decode($imgData));
imagealphablending($image, true); // setting alpha blending on
imagesavealpha($image, true); // save alphablending setting
//my code works up until this point (I can output a transparent PNG successfully)
//this is where I would make a new image with-
//the transparent background and put my transparent PNG on it-
//to prep it for imagegif();
//i kinda had some success with:
//$fill = imagecolorallocate($image, 255, 250, 214);
//imagefill($image, 0, 0, $fill);
//just to test if I could actually change the background..
//but anything like a circle with a transparent center would not--
//get filled with transparency and would remain black.
//so this obviously isn't the way to do it.
imagegif($img, 'test.gif');
The end result has to be a GIF preserving the PNG's transparent background.
I'm really stuck ¬____¬ please help me.
Thank you in advance for any advice you can provide.
Edit:
To show you an example of why chrislondon's second example does not work, I have drawn a half circle and a full circle in this image and then spun it through chrislondon's code (resulting in a .GIF image which is what I want):
The (lumpy)black circle is not filled by me, it is just the transparency in the center not showing through. The (lumpy)circle to the right is not completed all the way leaving a gap and so the transparency is filled.
I hope this will clear up any remaining misunderstandings to what I'm trying to achieve.
imagecolortransparent($image, 127<<24); // 0x7f000000
The GD library stores the alpha in a weird way.
0x7f000000 = 100% transparent black
0x00000000 = 100% opaque black
So choosing the transparent black, over the opaque black color, will make it transparent.
This appears to work:
$input = "data:image/png;base64,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";
list($ignore, $imgData) = explode(',', $input);
$image = imagecreatefromstring(base64_decode($imgData));
$width = imagesx($image);
$height = imagesy($image);
$imageOut = imagecreatetruecolor($width, $height);
//TODO - edges will be anti-aliased to this colour, pick one that will look
//'good' for you, e.g. mid-grey for general case, white for white pages,
$background = imagecolorallocatealpha($imageOut, 0x7f, 0x7f, 0x7f, 0);
imagefill($imageOut, 0, 0 , $background);
imagecopyresampled($imageOut, $image, 0, 0, 0, 0, $width, $height, $width, $height);
imagesavealpha($imageOut, true);
imagecolortransparent($imageOut, $background);
imagegif($imageOut, "../../var/tmp/test.gif");
The bit you missed was you have to explicitly say which colour should be set as transparent. It won't automatically convert the alpha channel to being transparent.
However this method is actually slightly dangerous, as whichever pixels are that colour will be transparent in the final image. You may be better choosing a colour unlikely to be present elsewhere e.g. rgb(0xff, 0xff, 0)
If you're fine with a PNG this works perfectly:
$input = "data:image/png;base64,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";
$image = imagecreatefrompng($input);
imagesavealpha($image, true);
imagepng($image, 'test.png');
If you want to convert it to a GIF you have to fill in the transparent color like this:
$input = "data:image/png;base64,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";
$image = imagecreatefrompng($input);
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagefill($image, 0, 0, $transparent);
imagegif($image, 'test.gif');
Note that because your string is an image/png you can use imagecreatefrompng and not have to do any comma exploding :)
Try this:
list($ignore, $imgData) = explode(',', $input);
$image = imagecreatefromstring(base64_decode($imgData));
$fill = imagecolorallocate($image, 255, 250, 214);
imagecolortransparent($image, $fill);
imagefill($image, 0, 0, $fill);
imagegif($image);

PHP/GD - transparent background

I want to do the following in PHP in combination with GD. ImageMagick is not an option, unfortunately, but this seems like such a common problem that there has to be a solution, I just can't seem to find it.
I want to create a PNG with a transparent background. Then I want to draw a rectangle on it, copy an image on it, and add some text. One way of doing this is as follows:
$image = ImageCreateTrueColor (800, 600);
imagecolortransparent ($image, 0); //0 is pure black, the default fill color
imagerectangle (...);
//code to copy an image
imagettftext ($image, ...);
imagepng ($image);
This works fine, except that part of the copied image might be black, and/or the text might be black. This then also becomes transparent, which is something I don't want.
imagefill ($image, 0,0, 0x7FFF0000);
imagetransparent ($image, 0x7FFF0000);
The above code is something I found online, which fills it with red, then makes red transparent. Again, this causes all red in the image to become transparent. I could choose a color that is unlikely to occur, but I can't guarantee this.
Is there something I'm missing? Can this be fixed?
Thanks for your replies!
imagecolortransparent is probably not what you want here if you're merging images, as single-colour transparency is nasty.
Instead, try it with a transparent fill mask like so:
<?php
$image = imagecreatetruecolor(100, 100);
// Transparent Background
imagealphablending($image, false);
$transparency = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparency);
imagesavealpha($image, true);
// Drawing over
$black = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 25, 25, 75, 75, $black);
header('Content-Type: image/png');
imagepng($image);

PHP GD : Can i just fill transparent part?

There is an image which has transparent area. (png image)
Now, while doing a imagecopy, can we just fill that transparent area?
Imagemagick can do this easily. Is that possible in php gd?
A layered approach via imagecopymerge() is one route. The concept is to merge your source image onto a new image, with a pre-set background image, which will show through the source image's transparency once merged.
//create main image - transparent, with opaque red square in middle
$img = imagecreate(60, 60);
$white = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $white); //make background transparent
$red = imagecolorallocate($img, 255, 0, 0);
imagefilledrectangle($img, imagesx($img) / 4, imagesy($img) / 4, imagesx($img) - (imagesx($img) / 4), imagesy($img) - (imagesy($img) / 4), $red);
//create new image, with pre-filled background, then merge first image across
$img2 = imagecreate(60, 60);
$blue = imagecolorallocate($img2, 0, 0, 255);
imagecopymerge($img2, $img, 0, 0, 0, 0, imagesx($img), imagesy($img), 100);
//output
imagepng($img2);
So the first image creates a transparent image (the white) with a red square in the middle. The second image is simply a blue fill.Merge the two, and the blue shows through the transparent part of the first image, so our red square now sits on the blue fill. Effectively, we've filled the transparent part.
Here's the three states in sequence.
There is nothing to 'fill' where there is transparency. Transparency in a png (or gif) is not the absence of a color, but a single color specifically marked to be shown as transparent. Therefore you want to remove that marker.
Take a look at the php gds function 'imagecolortransparent':
Nope, you can't.
Instead that, you can try to create a copy from a colored rectangle. This code worked for me:
$input = imagecreatefrompng($file_input);
list($width, $height) = getimagesize($file_input);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output, 255, 255, 255);
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height);
imagepng($output, $file_output);

Set a color as transparent in palette-based image

I want to convert a alpha transparent png image to palette based png image.
In GD I can do it easy:
// We have already the image loaded in $source_img
$w=200; $h=200; // We supose that img dimensions are 200x200
$img = imagecreatetruecolor($w, $h); // New black image
list($r, $g, $b) = array(200, 200, 200); // Some color that doesn't appear in image to avoid conflict
$color = imagecolorallocate($img, $r, $g, $b);
imagefill($img, 0, 0, $color); // Fill the black image with the chosen color.
imagecolortransparent($img, $color); // Set the chosen color as transparent
$res = imagecopyresampled($img, $source_img, 0, 0, 0, 0, $w, $h, $w, $h);
But in Imagick I don't know how set a color as transparent (imagecolortransparent() in GD). I have spent hours searching on the internet, but the help in the php site isn't very comphrensive and there are many undocumented functions.
Thanks.
On the command line I would do something like this:
convert test.png -transparent-color white PNG8:converted.png
But there seems to be a problem in some IM versions with this type of conversion, I found this usergroup post by some guy who seems to have similiar problems: http://studio.imagemagick.org/pipermail/magick-users/2009-May/022534.html
Are you using the command line when working with IM or do you use the PHP module ( http://de.php.net/manual/en/book.imagick.php )?

Using PHP's GD functions, how can I create an ellipse that is anti-alised and has a transparent background (PNG24 with alpha)?

I'm able to draw a circle on a transparent background, but it's pixelated around the edges.
I can also get an anti-aliased circle on a non-transparent background with http://mierendo.com/software/antialiased_arcs/.
So, how do I get both?
The trouble with transparent images is that the half-transparent pixels at the border will be partly colored with the color you specified as the transparent color, if you can live with that then you can use the antialiased arcs library you specified, just put the following at the beginning of their example (I used the optimized version) :
include ("./imageSmoothArc_optimized.php");
$img = imageCreateTrueColor( 648, 800 );
imagealphablending($img,true);
$color = imageColorAllocate( $img, 255, 255, 255);
$transparent_color = imageColorAllocate( $img, 0, 0, 0);
imagefill( $img, 5, 5, $transparent_color );
imagecolortransparent($img, $transparent_color);
This will give you a transparent PNG image. Since I specified black as the transparent color, the circles will go to black near the edge, and you will only be able to use this on a dark background.

Categories