|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2011-04-07 06:53 UTC] info822 at freshsoftware dot net
Description: ------------ I am writing you because "imagecreatefromstring" is causing images to output black images. I have been using the same script on a live server running CentOS/PHP-5.1.6 and a development server running Fedora 9/PHP-5.2.3 for 1+ year with no problem. Recently I upgraded the dev server to Fedora 13/PHP-5.3.6 and now the same script has stopped displaying images. I have recompiled PHP, reinstalled http, httpd-devel, gd, gd-devel, libjpeg, libjpeg-devel, libpng, libpng-devel, and other related packages numerous times. But I can not figure out the problem. I would install PHP-5.2.3 on Fedora 13 but Openssl error out during the make process. ****************************************************************************** Here is some information about the liver server that does not have a problem. phpinfo: https://secure20.nexcess.net/thewordsmith.info/php/ Script View: https://secure20.nexcess.net/thewordsmith.info/resize_event_pic.php?event_num=27&new_width=100&new_height=143 Actual Image: https://secure20.nexcess.net/thewordsmith.info/images/event_images/2010-11-20/The%20Lake%20Effect%20Festival/Lake%20Effect%20Hip%20Hop%20Flyer.jpg Product script View: https://secure20.nexcess.net/thewordsmith.info/calendar.php ****************************************************************************** Here is info about the development server with the "imagecreatefromstring" problem: phpinfo: http://thewordsmith.dyndns.info/php/ Script View: http://thewordsmith.dyndns.info/resize_event_pic.php?event_num=27&new_width=100&new_height=143 Actual image: http://thewordsmith.dyndns.info/images/event_images/2010-11-20/The%20Lake%20Effect%20Festival/Lake%20Effect%20Hip%20Hop%20Flyer.jpg Production Script View: http://thewordsmith.dyndns.info/calendar.php ****************************************************************************** The logs are putting out "chunk" and "Corrupt JPEG data: 18580 extraneous bytes before marker 0xe2" errors. You can view all 3 error logs at: http://thewordsmith.dyndns.info/error_logs/ The development server is only on from 10am-6pm EST time. Email me when you are ready to look at this issue so I can be sure that the dev server is on. Test script: --------------- <? //ob_start(); //echo $HTTP_SERVER_VARS['HTTP_REFERER']; //DB connection. require "../db.php"; require "../globals.php" /* header ("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Cache-Control: no-cache, no-store, must-revalidate, private, max-age=0, proxy-revalidate, no-transform"); header ("Pragma: no-cache"); header("Vary: User-Agents"); */ //Now select the meber info. $get_calendar_info = mysql_query("SELECT * FROM `calandar` WHERE `event_num` = '$event_num' && `event_active` = 'yes'") or die(mysql_error(). ": " . __FILE__ . ": " . __LINE__); //or die(header("location: http://$none_secured_domain/error_page.php?profile_name_not_found")); $calendar_info = mysql_fetch_object($get_calendar_info); //Die to an errror if no such profile name exist. if(mysql_num_rows($get_calendar_info) <= 0){ mysql_close($mysql_connect); //die(header("location: http://$none_secured_domain/error_page.php?profile_name_not_found")); } if($calendar_info->event_img != ""){ $calendar_info->event_img = "$img_dir" . "/" . "$calendar_info->event_img"; } else{ //$calendar_info->event_img = "$img_dir" . "/" . "site/Calendar-Logo-256x256.png"; } $img_info = getimagesize("$calendar_info->event_img"); // get contents of a file into a string $img_data = file_get_contents("$calendar_info->event_img"); $thumb = imagecreatetruecolor($new_width, $new_height);// or die("Could create true color image. Error on file: " . __FILE__ . " Line: " . __LINE__); $source = imagecreatefromstring($img_data);// or die("Could create image from string. Error on file: " . __FILE__ . " Line: " . __LINE__); // Resize imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $img_info[0], $img_info[1]);// or die("Could not copy image Error on file: " . __FILE__ . " Line: " . __LINE__); // Output if($img_info[2] == 1){ header("Content-Length: " . filesize("$calendar_info->event_img")); header("Content-type: " . image_type_to_mime_type(IMAGETYPE_GIF)); imagegif($thumb); } elseif($img_info[2] == 2){ header("Content-Length: " . filesize("$calendar_info->event_img")); header("Content-type: " . image_type_to_mime_type(IMAGETYPE_JPEG)); imagejpeg($thumb); } elseif($img_info[2] == 3){ header("Content-Length: " . filesize("$calendar_info->event_img")); header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG)); imagepng($thumb); } imagedestroy($thumb); //ob_flush(); ?> Expected result: ---------------- Output of a thumbesize image which is reduced from a larger image. Actual result: -------------- A black images is out puted instead of a thumbebsize copy of a larger image. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 20 21:00:02 2025 UTC |
$img_info = getimagesize("$calendar_info->event_img"); //Create a smaller image pallet $thumb = imagecreatetruecolor($new_width, $new_height);// or die("Could create true color image. Error on file: " . __FILE__ . " Line: " . __LINE__); // Output if($img_info[2] == 1){ $source = imagecreatefromgif("$calendar_info->event_img");// or die("Could create image from string. Error on file: " . __FILE__ . " Line: " . __LINE__); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $img_info[0], $img_info[1]);// or die("Could not copy image Error on file: " . __FILE__ . " Line: " . __LINE__); header("Content-Length: " . filesize("$calendar_info->event_img")); header("Content-type: " . image_type_to_mime_type(IMAGETYPE_GIF)); imagegif($thumb); } elseif($img_info[2] == 2){ $source = imagecreatefromjpeg("$calendar_info->event_img");// or die("Could create image from string. Error on file: " . __FILE__ . " Line: " . __LINE__); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $img_info[0], $img_info[1]);// or die("Could not copy image Error on file: " . __FILE__ . " Line: " . __LINE__); header("Content-Length: " . filesize("$calendar_info->event_img")); header("Content-type: " . image_type_to_mime_type(IMAGETYPE_JPEG)); imagejpeg($thumb); } elseif($img_info[2] == 3){ $source = imagecreatefrompng("$calendar_info->event_img");// or die("Could create image from string. Error on file: " . __FILE__ . " Line: " . __LINE__); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $img_info[0], $img_info[1]);// or die("Could not copy image Error on file: " . __FILE__ . " Line: " . __LINE__); header("Content-Length: " . filesize("$calendar_info->event_img")); header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG)); imagepng($thumb); } imagedestroy($thumb); ?>