PHPBuilder - Advanced Image Editing Under the GD Library Page 4

Advanced Image Editing Under the GD Library - Page 4

by: Brandon "Mordecai" Cash
|
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.
``` <?php 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:

Comment and Contribute

Your comment has been submitted and is pending approval.

Author:
Brandon "Mordecai" Cash

Comment:

Comment:

(Maximum characters: 1200). You have characters left.