On Monday 28 February 2005 10:34 am, Bosky, Dave wrote:
> Does anyone have a nice function that will resize an uploaded image to
> specific width/height dimensions?
>
> I wanted to find something that would work for only GIF and JPG image
> types. I've converted my shopping cart
>
> application from Cold Fusion to PHP and need to create thumbnails and
> reduce the size of large uploaded images.
>
>
>
> I've already done a google search and found an example but can't get it to
> work for some reason and it includes a
>
> bunch of other stuff that's not needed and too much trouble to remove.
>
>
>
>
>
> Thanks,
>
> Dave
>
This one works for me: currently I have a max of 600kb on upload which is
reduced to 10% (60kb). Assumes you have a 'pix' directory where you load
jpegs etc:
if ($_FILES["pix"]["type"] == "image/jpeg")
{
$pix_file = $_FILES["pix"]["name"];
$pix_temp_file = $_FILES["pix"]["tmp_name"];
/* Rename file with id and 'U' for upload */
$new_pix_file = "U{$_SESSION['rid']}-{$_SESSION['sid']}.jpg";
if(is_uploaded_file($pix_temp_file)){
move_uploaded_file($pix_temp_file,
"/your_site/web/pix/{$_SESSION['rid']}-{$_SESSION['sid']}.jpg");
}
$original =
"/your_site/pix/{$_SESSION['rid']}-{$_SESSION['sid']}.jpg";
/* Resize the uploaded picture */
$dest_h = "190";
$dest_w = "117";
// create the blank limited-palette image
$base_image = imageCreate($dest_w, $dest_h);
move_uploaded_file($base_image, "/your_site/pix/convert.jpg");
// convert and save it to temp.jpg
imagejpeg($base_image, '/your_site/pix/convert.jpg');
// get the image pointer to the temp jpeg
$image = imageCreateFromJpeg('/your_site/pix/convert.jpg');
// get the image pointer to the original image
$imageToResize =
imageCreateFromJpeg("/your_site/pix/{$_SESSION['rid']}-{$_SESSION['sid']}.jpg");
$src_w = imagesx($imageToResize); // Current Image
Width
$src_h = imagesy($imageToResize); // Current Image
Height
// 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,
"/your_site/pix/{$_SESSION['rid']}-{$_SESSION['sid']}.jpg", $jpegQuality);
// cleanup temp files
}
}
Hth,
Andre
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php