function textimage_image_add_stroke in Textimage 5.2
Same name and namespace in other branches
- 5 textimage.module \textimage_image_add_stroke()
- 6.2 textimage.module \textimage_image_add_stroke()
- 7.2 textimage.module \textimage_image_add_stroke()
Stroke function adds a solid color stroke around an image with a transparent background.
@todo Add $position parameter to allow the stroke to be applied 'inside', 'middle', or 'outside'. outside is the only current behavior.
Parameters
$img: The gd image resource of the image to modify
$thickness: The width of the stroke to apply
$color: The color of the stroke to apply
1 call to textimage_image_add_stroke()
- textimage_image_from_preset in ./
textimage.module - Loads the Textimage preset and generates the GD image resource.
File
- ./
textimage.module, line 463
Code
function textimage_image_add_stroke($img, $thickness, $color, $text_opacity) {
if ($thickness > 0) {
$width = imagesx($img);
$height = imagesy($img);
// Create a new image which we'll lay over the original
$border_img = imagecreatetruecolor($width, $height);
$back = imagecolorallocatealpha($border_img, 0, 0, 0, 127);
imagefill($border_img, 0, 0, $back);
for ($x = 0; $x < $width; $x++) {
for ($y = 0; $y < $height; $y++) {
$c = imagecolorsforindex($img, imagecolorat($img, $x, $y));
// Outside only modify pixels which are less opaque than the text opacity.
if ($c['alpha'] > -($text_opacity - 100) / 100 * 127) {
textimage_image_stroke_change_pixels($img, $border_img, $thickness, $color, $x, $y, $width, $height);
}
}
}
// Merge the images
imagealphablending($img, TRUE);
imagecopy($img, $border_img, 0, 0, 0, 0, $width, $height);
}
return $img;
}