If you have GD2 I'd advise using imagecopyresampled, as I found using imagecopyresized often resulted in blue or grayish images, while imagecopyresampled resulted in normal looking images.
Jason Reid [EMAIL PROTECTED] -- AC Host Canada www.achost.ca ----- Original Message ----- From: "Dave at Sinewaves.net" <[EMAIL PROTECTED]> To: "Arcadius A." <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Sunday, August 25, 2002 12:23 PM Subject: RE: [PHP] GD lib. image quality! > imageCreate will create an image, but its palette will be very limited, so > when you try to copy your photo onto it, it will maintain the palette of the > original picture. Obviously, this is not what you want, since the picture > comes out looking all grey and faded (probably 8-16 colors!). > > What works for me is creating a blank image using imageCreate(), then saving > it as a temporary jpeg (using imageJpeg). This action will set the palette > of the image to a jpeg's palette (close to 16-bit or better colorspace). If > you imageCopyResized over this temp.jpg (which you need to create whenever > you run the script to ensure sizing is perfect), it will come out with the > full palette of colors. > > Pseudo code: > <? > $dest_h = whatever your calculated destination height is; > $dest_w = whatever your calculated destination width is; > > $src_h = height of original image; > $src_w = width of original image; > > // create the blank limited-palette image > $base_image = imageCreate($dest_w, $dest_h); > > // convert and save it to temp.jpg > imagejpeg($base_image, 'path/to/temp.jpg'); > > // get the image pointer to the temp jpeg > $image = imageCreateFromJpeg('path/to/temp.jpg'); > > // get the image pointer to the original image > $imageToResize = imageCreateFromJpeg('path/to/image_to_be_resized.jpg'); > > // resize the original image over temp.jpg > // since you have GD2, you could also use imageCopyResampled > imageCopyResized($image, $imageToResize, 0, 0, 0, 0, $dest_w, $dest_h, > $src_w, $src_h); > > // values for output jpeg quality > $jpegQuality = 75; > > // create the resized image > imageJpeg($image, 'path/to/thumbnail_name.jpg', $jpegQuality); > ?> > > > Then all you have to do is a little cleanup with imageDestroy() and you > should have a nice looking thumbnail! > > > I usually add a line like this to the script to make sure everything went > smoothly: > <? > echo '<html><head><title>Thumbnail Generator</title>' > .'</head><body><img src="path/to/thumbnail_name.jpg">' > .'</body></html>'; > ?> > > It lets me see the quality of the thumbnail the second the script completes. > > > Try it - you'll get perfect thumbnails every time. I used this technique > for all of the pictures at www.arkestraclandestina.com with GD1.6 - and all > of them actually had custom color profiles! Works like a charm. > > I like this method because I can be sure that the script won't break on > sites with older PHP and GD versions - which is an important consideration > when you're deploying applications to other sites... > > However! If you are sure it will only be run on a PHP4, GD2 system, you can > avoid all of the temp jpg madness altogether by just altering your code to > use imageCreateTrueColor() instead of imageCreate()!! ;P Easy as pie! > > Dave > > > > -----Original Message----- > From: Arcadius A. [mailto:[EMAIL PROTECTED]] > Sent: Sunday, August 25, 2002 4:11 AM > To: [EMAIL PROTECTED] > Subject: [PHP] GD lib. image quality! > > > Hello! > I wrote a little script for generation thumbnails of larger images.... > <code> > $origImage = imageCreateFromJpeg($sourcePath."/".$currentImageName); > $thumbnail = imageCreate($thumbWidth,$thumbHeight);// create empty image > > imageCopyResized($thumbnail,$origImage,0,0,0,0,$thumbWidth,$thumbHeight,imag > esX($origImage),imagesY($origImage)); > imageJpeg($thumbnail, $targetPath."/".$thumbNamePrefix."_thumb.jpg"); // > Store it > imageDestroy($thumbnail); // cleanup > echo "<br>Image ".$targetPath."/".$thumbNamePrefix."_thumb.jpg"." > created successfully!"; > > </code> > > then, I've noticed that the quality of the thumbnails created is very bad! > my "phpinfo()" page shows "2.0 or higher" as GD version > > So, I'm wondering whether I'm doing something wrong in my code or whether > there exist a better library to use with PHP ... a library able to generate > good quality JPG files... > > Thanks in advance. > > Arcadius. > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php