Bug #15549 Updated: only incomplet output

From: Date: Fri, 15 Feb 2002 18:07:32 +0000
Subject: Bug #15549 Updated: only incomplet output
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-385@lists.php.net to get a copy of this message
ID: 15549 Updated by: sander@php.net Reported By: michael@famberg.net -Status: Open +Status: Bogus Bug Type: GD related Operating System: Windows XP with apache PHP Version: 4.0.6 New Comment: The bug system is not the appropriate forum for asking support questions. For a list of a range of more appropriate places to ask for help using PHP, please visit http://www.php.net/support.php GD is not thread safe (at least, not on Windows). Previous Comments: ------------------------------------------------------------------------ [2002-02-14 05:25:22] michael@famberg.net The gd version is 2.0 or higher(phpinfo); and the php version is 4.0.6 ------------------------------------------------------------------------ [2002-02-14 05:12:12] michael@famberg.net 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 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=15549&edit=1

« previous php.bugs (#385) next »