Image thumbnail
Posted: Sat Jan 21, 2006 4:40 pm
I've used the following code in simple variations in a number of other scripts, but I'm getting very strange results this time. It's always distorting the colors significantly, and it some cases making them very pixellated and mostly greyscale. Any ideas?
Code: Select all
// Check for the image's exisitance
if (!file_exists($source)) {
echo 'File does not exist!';
} else {
$size = getimagesize($source); // Get the image dimensions and mime type
// DETERMINE WIDTH BY MODE
switch ($_REQUEST['mode']) {
case "gallery":
$h = 200;
$scale = $size[1] / $h;
$w = $size[0] / $scale;
break;
}
$resize = imagecreatetruecolor($w, $h); // Create a blank image
/* Check quality option. If quality is greater than 100, return error */
if ($quality > 100) {
echo 'The maximum quality is 100. <br>Quality changes only affect JPEG images.';
} else {
header('Content-Type: '.$size['mime']); // Set the mime type for the image
switch ($size['mime']) {
case 'image/jpeg':
$im = imagecreatefromjpeg($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); // Resample the original JPEG
imagejpeg($resize, '', $quality); // Output the new JPEG
break;
case 'image/png':
$im = imagecreatefrompng($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $w, $h, $size[0], $size[1]); // Resample the original PNG
imagepng($resize, '', $quality); // Output the new PNG
break;
}
imagedestroy($im);
}
}