02. januar 2008 - 21:30
#8
<?php
//http://www.eksperten.dk/spm/812550
$imgName = $_GET['src'];
if(!preg_match('/\.(:?jpeg|jpe|jpg)$/i', $imgName)){
header ("Content-type: image/png");
$im = @imagecreatetruecolor(120, 20) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "ERROR", $text_color);
imagepng($im);
imagedestroy($im);
exit();
}
$imgImport = imagecreatefromjpeg($imgName);
$imgName_w = imagesx($imgImport);
$imgName_h = imagesy($imgImport);
$gradientHeight = 100;
// Create new blank image with sizes.
$background = imagecreatetruecolor($imgName_w, $gradientHeight);
$gradientColor = "255 255 255"; //White
$gradparts = explode(" ",$gradientColor); // get the parts of the colour (RRR,GGG,BBB)
$dividerHeight = 1;
$gradient_y_startpoint = $dividerHeight;
$gdGradientColor=ImageColorAllocate($background,$gradparts[0],$gradparts[1],$gradparts[2]);
$newImage = imagecreatetruecolor($imgName_w, $imgName_h);
for ($x = 0; $x < $imgName_w; $x++){
for ($y = 0; $y < $imgName_h; $y++){
imagecopy($newImage, $imgImport, $x, $imgName_h - $y - 1, $x, $y, 1, 1);
}
}
// Add it to the blank background image
imagecopymerge ($background, $newImage, 0, 0, 0, 0, $imgName_w, $imgName_h, 100);
//create from a the image so we can use fade out.
$gradient_line = imagecreatetruecolor($imgName_w, 1);
// Next we draw a GD line into our gradient_line
imageline ($gradient_line, 0, 0, $imgName_w, 0, $gdGradientColor);
$i = 0;
$transparency = 30; //from 0 - 100
while ($i < $gradientHeight){ //create line by line changing as we go
imagecopymerge ($background, $gradient_line, 0,$gradient_y_startpoint, 0, 0, $imgName_w, 1, $transparency);
++$i;
++$gradient_y_startpoint;
if ($transparency == 100){
$transparency = 100;
}else{
// this will determing the height of the
//reflection. The higher the number, the smaller the reflection.
//1 being the lowest(highest reflection)
$transparency = $transparency + 1;
}
}
//New blank image, wetfloor effect image + original image.
$output = imagecreatetruecolor($imgName_w, $imgName_h + $gradientHeight);
//Copy original image
imagecopy($output, $imgImport, 0, 0, 0, 0, $imgName_w, $imgName_h);
// Set the thickness of the line we're about to draw
imagesetthickness($background, $dividerHeight);
// Draw the line - me do not likey the liney
imageline($background, 0, 0, $imgName_w, 0, $gdGradientColor);
//Copy wetfloor image
imagecopy($output, $background, 0, $imgName_h, 0, 0, $imgName_w, $gradientHeight);
header("Content-type: image/jpeg");
imagejpeg($output, NULL, 100); //100 being the quality of image 100 Max(Best)
imagedestroy($background);
imagedestroy($gradient_line);
imagedestroy($newImage);
imagedestroy($output);
?>