Bug #54482 [Opn]: imagecreatefromstring fails
| From: | info822 at freshsoftware dot net | Date: | Thu, 07 Apr 2011 15:52:54 +0000 |
| Subject: | Bug #54482 [Opn]: imagecreatefromstring fails | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-160003@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=54482&edit=1
ID: 54482
User updated by: info822 at freshsoftware dot net
Reported by: info822 at freshsoftware dot net
Summary: imagecreatefromstring fails
Status: Open
Type: Bug
Package: GD related
Operating System: Fedora 13 (Godard) Kernel Linux
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
A list off all the rpms installed on my system can be viewed at:
http://thewordsmith.dyndns.info/rpms_installed.txt
Previous Comments:
------------------------------------------------------------------------
[2011-04-07 06:53:18] 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.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=54482&edit=1