/ Published in: PHP
URL: http://www.codewalkers.com/c/a/Miscellaneous/Adding-Drop-Shadows-with-PHP/
Expand |
Embed | Plain Text
<?php /* set drop shadow options */ /* offset of drop shadow from top left */ /* number of steps from black to background color /* define("DS_STEPS", 10); /* distance between steps */ /* define the background color */ /* create a new canvas. New canvas dimensions should be larger than the original's */ $width = $o_width + DS_OFFSET; $height = $o_height + DS_OFFSET; $image = imagecreatetruecolor($width, $height); /* determine the offset between colors */ $step_offset = array("r" => ($background["r"] / DS_STEPS), "g" => ($background["g"] / DS_STEPS), "b" => ($background["b"] / DS_STEPS)); /* calculate and allocate the needed colors */ $current_color = $background; for ($i = 0; $i <= DS_STEPS; $i++) { $current_color["r"] -= $step_offset["r"]; $current_color["g"] -= $step_offset["g"]; $current_color["b"] -= $step_offset["b"]; } /* floodfill the canvas with the background color */ imagefilledrectangle($image, 0,0, $width, $height, $colors[0]); /* draw overlapping rectangles to create a drop shadow effect */ imagefilledrectangle($image, DS_OFFSET, DS_OFFSET, $width, $height, $colors[$i]); $width -= DS_SPREAD; $height -= DS_SPREAD; } /* overlay the original image on top of the drop shadow */ $original_image = imagecreatefromjpeg($src); imagecopymerge($image, $original_image, 0,0, 0,0, $o_width, $o_height, 100); /* output the image */ imagejpeg($image, "", 100); /* clean up the image resources */ imagedestroy($image); imagedestroy($original_image); } ?>
You need to login to post a comment.
