Hi ihr,
ja ich weiß, dass Thema gab es schon zu genüge. Mein Script funktioniert auch, fast. Die Bildqualität ist jedoch grottenschlecht. Vielleicht kann da jemand mal drüber schauen? Achja, evtl. auch über die Berechnung der Thumbnailgröße? Denn es ist so, dass er zwar die Bilder richtig verkleinert, aber müsste das nicht Doppelt geschehen? Angenommen ein Bild Hat eine Größe von 5000 auf 7000 Pixel (Nur mal so) und Ich erstelle Das Thumb so, dass die längere seite, also 7000 Pixel auf 150 Reduziert wird. DAnn kann es doch immernoch vorkommen, dass die andere Seite meine maximale länge dennoch übertrifft, oder?
Also 2 Dinge:
Thumbnail Bildqualität
Berechnung der Thumbnailgröße korrekt? Danach nochmal berechenen bzw. Abfragen ob eine Seite noch größer als vorgegeben?
ja ich weiß, dass Thema gab es schon zu genüge. Mein Script funktioniert auch, fast. Die Bildqualität ist jedoch grottenschlecht. Vielleicht kann da jemand mal drüber schauen? Achja, evtl. auch über die Berechnung der Thumbnailgröße? Denn es ist so, dass er zwar die Bilder richtig verkleinert, aber müsste das nicht Doppelt geschehen? Angenommen ein Bild Hat eine Größe von 5000 auf 7000 Pixel (Nur mal so) und Ich erstelle Das Thumb so, dass die längere seite, also 7000 Pixel auf 150 Reduziert wird. DAnn kann es doch immernoch vorkommen, dass die andere Seite meine maximale länge dennoch übertrifft, oder?
Also 2 Dinge:
Thumbnail Bildqualität
Berechnung der Thumbnailgröße korrekt? Danach nochmal berechenen bzw. Abfragen ob eine Seite noch größer als vorgegeben?
PHP:
//Wo liegt das Originalbild
$PicPathIn = "$endziel";
//Wo soll das Thumbnail hin
$PicPathOut = "$endziel";
//Wie heißt das Origninalbild
$bild = "$name";
//Wie soll sich der Dateiname verändern
$neu = "TN"; //TN = Thumbnail
$nameneu = "$neu$name";
//Maximale Breite und Höhe vom Thumbnail
$maxbreite = "200";
$maxhoehe = "200";
// Bilddaten ermitteln
$size = getimagesize("$PicPathIn"."$bild");
$breite =$size[0];
$hoehe =$size[1];
//Prüfen ob Höhe oder Breite größer ist z.B.: 3<4
//Wenn Breite kleiner als Höhe ist, ist Höhe länger
if($breite<$hoehe){
$schritt1 = 100/$hoehe*$maxhoehe; //Ergebnis ist der Prozentuale anteil des Originals
$schritt2 = $breite/100*$schritt1; //Egebnis ist die neue Länge der Breite
$neueHoehe = $maxhoehe;
$neueBreite = $schritt2;
//$neueBreite =100;
//$neueHoehe =intval($hoehe*$neueBreite/$breite);
} else {
$schritt1 = 100/$breite*$maxbreite; //Ergebnis ist der Prozentuale anteil des Originals
$schritt2 = $hoehe/100*$schritt1; //Egebnis ist die neue Länge der Breite
$neueHoehe = $schritt2;
$neueBreite = $maxbreite;
};
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"."$nameneu"); //imageGIF($neuesBild,"$PicPathOut"."TN"."$bild2");
}
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"."$nameneu"); //imageGIF($neuesBild,"$PicPathOut"."TN"."$bild2");
}
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"."$nameneu"); //imageGIF($neuesBild,"$PicPathOut"."TN"."$bild2");
}