Jump to content


Photo

image contains errors


  • Please log in to reply
3 replies to this topic

#1 steve448

steve448
  • Members
  • PipPipPip
  • Advanced Member
  • 55 posts

Posted 18 March 2006 - 05:18 PM

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

#2 v-wdd

v-wdd
  • New Members
  • Pip
  • Newbie
  • 6 posts
  • Location127.0.0.1

Posted 18 March 2006 - 06:06 PM

I don't see you taking the $width_orig, $height_orig variables from anywhere...
Try:
  $details=getimagesize($filename);
  $width_orig=$details[0];
  $height_orig=$details[1];


#3 TEENFRONT

TEENFRONT
  • Members
  • PipPipPip
  • Advanced Member
  • 338 posts

Posted 18 March 2006 - 06:07 PM

you need to add the headers to the file before any output.... EG


header('Content-type: image/jpeg');
Teenfront.co.uk : Free Teen Chat -  FunkySmileys.co.uk : MSN Smileys -  ArcadeMonkey.co.uk : Free Flash Games
8Baller.co.uk : Free Multiplayer Pool [url=http://8Baller.co.uk]

#4 steve448

steve448
  • Members
  • PipPipPip
  • Advanced Member
  • 55 posts

Posted 19 March 2006 - 07:37 AM

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




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users