Edit report at http://bugs.php.net/bug.php?id=54482&edit=1
ID: 54482
Updated by: paj...@php.net
Reported by:info822 at freshsoftware dot net
Summary:imagecreatefromstring fails
-Status: Open
+Status: Feedback
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:
Cannot reproduce.
Here is a simple script:
https://secure20.nexcess.net/thewordsmith.info/images/event_images/2010-11-
20/The%20Lake%20Effect%20Festival/Lake%20Effect%20Hip%20Hop%20Flyer.jpg';
imagepng(imagecreatefromjpeg($file), 'a1.png');
imagepng(imagecreatefromstring(file_get_contents($file)), 'a2.png');
a1 and a2 are just fine. Please try this script as well.
Previous Comments:
[2011-04-07 17:52:54] info822 at freshsoftware dot net
A list off all the rpms installed on my system can be viewed at:
http://thewordsmith.dyndns.info/rpms_installed.txt
[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:
---
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));