|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-02-14 05:25 UTC] michael at famberg dot net
[2002-02-15 13:07 UTC] sander@php.net
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Dec 06 10:00:01 2025 UTC |
I have written a script which sample a resized image and create a copyrightstring on it. Then it should output the result on display. In most of times its makes wonderfull, but sometimes its output incomplet or empty images. Its happends every 10 times of try to load an image. Here is the complete script: function display_resized_image( $image, $newimage_extension, $newimage_height,$newimage_width,$quality=80,$tmpimagetype="image/jpeg") { $image_size=getimagesize($image); $image_width=$image_size[0]; $image_height=$image_size[1]; //### get image $pathexploted=pathinfo($image); $image_extension=$pathexploted["extension"]; if ($image_extension=="jpg" || $image_extension=="png" || $image_extension=="tmp") { if ($image_extension=="jpg") { $image_extension="jpeg"; } if ($image_extension=="tmp") { $tmptype=explode("/",$tmpimagetype); if ($tmptype[0]=="image") { switch($tmptype[1]) { case "jpeg": $image_extension="jpeg"; break; case "jpg": $image_extension="jpeg"; break; case "png": $image_extension="png"; break; } } else { return -11; } } $function="imagecreatefrom" . $image_extension; $image = $function($image); } else { return -12; } //### calculate new size if ($newimage_height==-1 && $newimage_width==-1) { $newimage_height=$image_height; $newimage_width=$image_width; } else { if ($newimage_width==-1) { $newimage_width=($image_width*$newimage_height)/$image_height; } if ($newimage_height==-1) { $newimage_height=($image_height*$newimage_width)/$image_width; } } //### create buffer image and sample resized image $buffer = imagecreatetruecolor($newimage_width,$newimage_height); imagecopyresampled($buffer,$image,0,0,0,0,$newimage_width ,$newimage_height,$image_width,$image_height); if ($newimage_width>=250) { //### Copyrightbild erstellen $cpbuffer = imagecreatetruecolor(300,30); imagestring ($cpbuffer, 5, 45, 8, "(C)2002 www.shopforkids.de", imagecolorexact($cpbuffer, 255, 255, 255)); //### alising line $linebuffer = imagecreatetruecolor(300,2); //### Copyrightbild einblenden imagecopymerge($buffer,$cpbuffer,$newimage_width-300,$newimage_height-30,0,0,300,30,40); imagecopymerge($buffer,$linebuffer,$newimage_width-300,$newimage_height-32,0,0,300,2,20); } //### shows images if ($newimage_extension=="jpg" || $newimage_extension=="png" || $newimage_extension=="jpeg") { if ($newimage_extension=="jpg") { $newimage_extension="jpeg"; } Header("Content-type: image/" . $newimage_extension); $function="image" . $newimage_extension; //$function="imagepng"; if ($function=="imagejpeg") { $function($buffer,"",$quality); } else { $function($buffer); } } else { return -21; } imagedestroy($buffer); imagedestroy($cpbuffer); imagedestroy($linebuffer); } Im sorry for my bad english. Michael Berg