PHP Graphics
Getting and Setting a Transparent Color
Problem
You want to set one color in an image as transparent. When the image is overlayed on a background, the background shows through the transparent section of the image.
Solution
Use ImageColorTransparent():
$color = 0xFFFFFF;
ImageColorTransparent($image, $color);
Discussion
Both GIFs and PNGs support transparencies; JPEGs, however, do not. To refer to the transparent color within GD, use the constant IMG_COLOR_TRANSPARENT. For example, here’s how to make a dashed line that alternates between black and transparent:
// make a two-pixel thick black and white dashed line
$style = array($black, $black, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT);
ImageSetStyle($image, $style);
To find the current transparency setting, take the return value of ImageColorTransparent() and pass it to ImageColorsForIndex():
$transparent = ImageColorsForIndex($image, ImageColorTransparent($image));
print_r($transparent);
This prints:
Array
(
[red] => 255
[green] => 255
[blue] => 255
)
The ImageColorsForIndex() function returns an array with the red, green, and blue values. In this case, the transparent color is white.
No comments:
Post a Comment