Revision: 12337
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 11, 2009 10:18 by jamesming
Initial Code
<?php
/* set drop shadow options */
/* offset of drop shadow from top left */
define("DS_OFFSET", 5);
/* number of steps from black to background color /*
define("DS_STEPS", 10);
/* distance between steps */
define("DS_SPREAD", 1);
/* define the background color */
$background = array("r" => 255, "g" => 255, "b" => 255);
$src = isset($_REQUEST['src']) ? urldecode($_REQUEST['src']) : null;
if(isset($src) && file_exists($src)) {
/* create a new canvas. New canvas dimensions should be larger than the original's */
list($o_width, $o_height) = getimagesize($src);
$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++) {
$colors[$i] = imagecolorallocate($image, round($current_color["r"]), round($current_color["g"]), round($current_color["b"]));
$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 */
for ($i = 0; $i < count($colors); $i++) {
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 */
header("Content-type: image/jpeg");
imagejpeg($image, "", 100);
/* clean up the image resources */
imagedestroy($image);
imagedestroy($original_image);
}
?>
Initial URL
http://www.codewalkers.com/c/a/Miscellaneous/Adding-Drop-Shadows-with-PHP/
Initial Description
Initial Title
PHP Create Drop Shadow on Image
Initial Tags
image
Initial Language
PHP