Jump to content

Archived

This topic is now archived and is closed to further replies.

steve448

image contains errors

Recommended Posts

Hi,

I'm trying to resize images when uploaded if they are too big using the code below:

//Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
@imagejpeg($image_p,$ImageName);

It rezizes the image and does everything I want - but in Mozilla / Firefox I get an error which stops my script.

"Cannot display image because it contains errors"

Although I can then use the image as normal.

It all works fine in IE

Think its a bug but does anyone know how I can fix it or just surpress the error so the script can continue

Thanks in advance

Share this post


Link to post
Share on other sites
I don't see you taking the $width_orig, $height_orig variables from anywhere...
Try:
[code]
  $details=getimagesize($filename);
  $width_orig=$details[0];
  $height_orig=$details[1];
[/code]

Share this post


Link to post
Share on other sites
you need to add the headers to the file before any output.... EG


header('Content-type: image/jpeg');

Share this post


Link to post
Share on other sites
Sorry, I'd defined everything earlier,

Like I said before, it resizes the image, its just the error?

A more complete version of the code is below:

// The file
$filename = 'test.jpg';

// Set a maximum height and width
$width = 320;
$height = 240;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
//$ImageName has been defined earlier in the script.

@imagejpeg($image_p,$ImageName);

Thanks again

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.