Image Qualität

Malaxo

Erfahrenes Mitglied
Hey Leute

Hab eine Funktion geschrieben die mir ein Bild verkleinert beim Uploaden jedoch leidet nun die Qualität extrem darunter. Mach ich etwas falsch im Script bei der Berechnung?

PHP:
function resize_picture($file, $nameb, $max_size) {
	list($width, $height, $type, $attrs) = getimagesize($file['tmp_name']);
	// Bild laden
	switch ($type) {
		case 1: $picture = imagecreatefromgif($file['tmp_name']); break;
		case 2: $picture = imagecreatefromjpeg($file['tmp_name']); break;
		case 3: $picture = imagecreatefrompng($file['tmp_name']); break;
		default: return false; break;
	}
	// Maximale Dimensionen
	$new_width = $width;
	$new_height = $height;
	if ($width > $max_size || $height > $max_size) {
		if ($width > $height) {
			$factor = $height / $width;
			$new_width = $max_size;
			$new_height = intval($max_size * $factor);
		} else {
			$factor = $width / $height;
			$new_height = $max_size;
			$new_width = intval($max_size * $factor);			
		}
	}
	// Bild skalieren und speichern
	$scaled_picture = imagecreatetruecolor($new_width, $new_height);
	imagecopyresized($scaled_picture, $picture, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
	return imagejpeg($scaled_picture, "../category/$nameb.jpg"); 
}

später ruf ich es so auf:

resize_picture($_FILES['image'], $name, 250);

auf die grösse von 250Px.

Tipps?

Danke
 
Hi,

1. könntest Du es mit imagecopyresampled probieren.

2. kannst Du bei imagejpeg als zweiten Parameter die gewünschte Qualität angeben.

Gruß
.
 
Zurück