#native_company# #native_desc#

Advanced Image Editing Under the GD Library Page 4

By Brandon “Mordecai” Cash
on May 26, 2003

Translucent Text

Translucent text is not as simple as outlining or shadowing, but it’s not particularly hard. A translucent image is just something partially invisible, or clear. This is done by drawing the image onto a buffer, editing the buffer, and then merging the buffer back onto the original image.


function imagettftexttransparent(&$im,$size,$angle,$x,$y,&$col,$fontfile,$text,$pct) {

$im_w imagesx($im); // Get the image width

$im_h imagesy($im); // Get the image height

$new imagecreate($im_w,$im_h); // Create a buffer

imagesetpixel($im,$im_w-1,0,$col); // Set a pixel down, so we can easily get the color

$index imagecolorat($im,$im_w-1,0); // Get the color at that pixel

$rgb imagecolorsforindex($im,$index); // Get the index of that color

$r $rgb["red"]; // Get the red value

$g $rgb["green"]; // Get the green value

$b $rgb["blue"]; // Get the blue value

$color imagecolorallocate($new,$r,$g,$b); // Allocate this color on the buffer

$copy imagecopy($new,$im,0,0,0,0,$im_w,$im_h); // Copy the old image onto the buffer

$text imagettftext($new,$size,$angle,$x,$y,$color,$fontfile,$text); // Draw the text

$merge imagecopymerge($im,$new,0,0,0,0,$im_w,$im_h,$pct); // Copy the buffer back onto the original image

imagedestroy($new); // Destroy the buffer



Anything that was on the image before stays where it was, untouched. The only difference is that text appears over the image now. This example places text over a metallic panel:
metallic panel with text