Grunge
Erfahrenes Mitglied
Hallo Leute,
ich nutze folgende Funktion um Bilder zu verkleinern.
das funktioniert auch wunderbar, jedoch sind die thumbnails sehr unscharf, und die Farbe is verfälscht.
Ich erstelle zwei Bilder einmal mit 50 px Breite und einmal mit 110px breite.
Der Aufruf erfolgt so:
habt ihr nen Lösungsvorschlag?
ich nutze folgende Funktion um Bilder zu verkleinern.
Code:
function make_thumbnail($image,$width,$out){
$image=explode("/",$image);
$PicPathIn="usr_img_profile/";
$PicPathOut="usr_img_profile/".$out;
// Orginalbild
$bild=$image[1];
// Bilddaten ermitteln
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=$width;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==1) {
// GIF
$altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
imageGIF($neuesBild,"$PicPathOut"."$bild");
}
if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$bild");
}
if($size[2]==3) {
// PNG
$altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImagePNG($neuesBild,"$PicPathOut"."$bild");
}
}
das funktioniert auch wunderbar, jedoch sind die thumbnails sehr unscharf, und die Farbe is verfälscht.
Ich erstelle zwei Bilder einmal mit 50 px Breite und einmal mit 110px breite.
Der Aufruf erfolgt so:
Code:
make_thumbnail($_POST["img"], 50, "50/");
make_thumbnail($_POST["img"], 110, "110/");
habt ihr nen Lösungsvorschlag?