15.8. Getting and Setting a Transparent Color15.8.1. ProblemYou want to set one of an image's colors as transparent. When the image is overlayed on a background, the background shows through the transparent section of the image. 15.8.2. Solution$color = ImageColorAllocate($image, $red, $green, $blue); ImageColorTransparent($image, $color); 15.8.3. DiscussionBoth 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); 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. 15.8.4. See AlsoDocumentation on ImageColorTransparent( ) at http://www.php.net/imagecolortransparent and on ImageColorsForIndex( ) at http://www.php.net/imagecolorsforindex. Copyright © 2003 O'Reilly & Associates. All rights reserved. |
|