Bild verkleinern und abspeichern. Schlechte Quali.
bastiii
- php
Hey.
Ich habe ein Formular zum bilder hochladen.
Ein Skript soll es verkleinern und abspeichern.
Es klappt, aber es sieht beschissen aus.. völlig verpixelt und ungenau.
Was mache ich falsch?
if(ob_get_level()===0){ob_start();}
$PicPathOut="./userpics/".$_SESSION['auth_userid']."/profil/";
$bild=md5(uniqid(rand(),true));
// Bilddaten feststellen
$size=getimagesize($_FILES["newpic"]['tmp_name']);
$breite=$size[0];
$hoehe=$size[1];
$neueHoehe=intval($hoehe*170/$breite);
if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG($_FILES["newpic"]['tmp_name']);
$neuesBild=ImageCreate(170,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,170,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,$PicPathOut.md5(uniqid(rand(),true)).".jpg");
}else{
if($size[2]==1) {
// GIF
$altesBild=ImageCreateFromGIF($_FILES["newpic"]['tmp_name']);
$neuesBild=ImageCreate(170,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,170,$neueHoehe,$breite,$hoehe);
ImageGIF($neuesBild,$PicPathOut.md5(uniqid(rand(),true)).".gif");
}
if($size[2]==3) {
// PNG
$altesBild=ImageCreateFromPNG($_FILES["newpic"]['tmp_name']);
$neuesBild=ImageCreate(170,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,170,$neueHoehe,$breite,$hoehe);
ImagePNG($neuesBild,$PicPathOut.md5(uniqid(rand(),true)).".png");
}
}
mfg
basti
Hello,
Ich habe ein Formular zum bilder hochladen.
Ein Skript soll es verkleinern und abspeichern.
Es klappt, aber es sieht beschissen aus.. völlig verpixelt und ungenau.
Was mache ich falsch?
$neuesBild=ImageCreate(170,$neueHoehe);
benutze ImageCreateTrueColor() stattdessen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Hi.
benutze ImageCreateTrueColor() stattdessen.
Danke. schon besser, aber immer noch nicht gut =(
Hello,
benutze ImageCreateTrueColor() stattdessen.
Danke. schon besser, aber immer noch nicht gut =(
Kannst Du mal ein Muster (Original und resized) verlinken?
Alternativ könntest es Du noch mit
http://de.php.net/manual/en/function.imagecopyresampled.php
versuchen, zu kopieren.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Hello,
Alternativ könntest es Du noch mit
http://de.php.net/manual/en/function.imagecopyresampled.phpversuchen, zu kopieren.
und den Quality-Parameter in ImageJpeg() auf 100(%) stellen
http://de.php.net/manual/en/function.imagejpeg.php
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
