Bilderupload Pixelhaft!

Zak85

Grünschnabel
Hallo erstmal... hab da folgendes Problem!
Ich betreibe eine Partysite wo man sich Bilder anschauen kann! Nun haben die User die möglichkeit Bilder hoch zu laden. Diese sollen sich automatisch an der Breite anpassen und zusätzlich ein 2. Bild erstellen, als Thumb.

Klappt alles wunderbar nur hab ich folgendes Problem, egal welche Prozentualle Qualität ich nutze, das Bild wird ständig Pixelhaft!

Hier mal den Code... Danke für die HIlfe!

// BILD DER BREITE ANPASSEN
//====================================================

// Bilddaten feststellen
$size=getimagesize("newspic/$pic");
$breite=$size[0];
$hoehe=$size[1];

//hier die Breite festlegen
$neueBreite=350;
$neueHoehe=intval($hoehe*$neueBreite/$breite);

$altesBild=ImageCreateFromJPEG("newspic/$pic");
$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
imagejpeg($neuesBild,"newspic/$pic", 90);


Das hab ich eigentlich dann überall, mir geht es darum, wie ich halt die Qualität besser hinbringe!
hier mal ein Bild:
http://www.konsoleroklub.ch/userpic/1-aPravda004.jpg
so ist's verpixelt!

http://www.konsoleroklub.ch/temp/1-aPravda004.jpg
so ist's normal!
 
Zuletzt bearbeitet:
Probier mal diese Funktion, bei mir geht die einwandfrei ;)

PHP:
function create_thumbs($PicPathIn, $PicPathOut, $destHeight, $dest_qual) {	
	$verz=opendir ($PicPathIn); 
	//Bild-Schleife 
	while ($bild = readdir ($verz)) {   
		if($bild != "." && $bild != ".."){
			$src_file = $PicPathIn.$bild;
			$dest_file = $PicPathOut."thb".substr($bild, 3, strlen($bild)-3);
			
			$imagetype = array( 1 => 'GIF', 2 => 'JPG', 3 => 'PNG', 4 => 'SWF', 5 => 'PSD', 6 => 'BMP', 7 => 'TIFF', 8 => 'TIFF', 9 => 'JPC', 10 => 'JP2', 11 =>  'JPX', 12 => 'JB2', 13 => 'SWC', 14 => 'IFF');
			$imginfo = getimagesize($src_file);
			
			$imginfo[2] = $imagetype[$imginfo[2]];
		
			// height/width
			$srcWidth = $imginfo[0];
			$srcHeight = $imginfo[1];
			$destWidth = (int)($srcWidth*$destHeight/$srcHeight);
			
			if ($imginfo[2] == 'JPG')
				$src_img = imagecreatefromjpeg($src_file);
			else if ($imginfo[2] == 'PNG')
				$src_img = imagecreatefrompng($src_file);
				
			$dst_img = imagecreatetruecolor($destWidth, $destHeight);
			imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth, (int)$destHeight, $srcWidth, $srcHeight);
			imagejpeg($dst_img, $dest_file, $dest_qual);
			imagedestroy($src_img);
			imagedestroy($dst_img);
		}
	}
}
 
Zurück