Grafiken auf maximal 150x120 px skallieren
-
Hallo,
wie könnte mann vorgehen, um Grafiken per PHP und GD-Lib zu skallieren, so dass das Ausgabebild nicht größer als 150x120px wird. Bei kleineren Bildern ist es egal nur dürfen sie halt nicht größer sein.
Momentan ändere ich die Bildgroesse einfach auf /2 was nur nicht immer hinhaut, da die Grafiken unterschiedliche Höhen haben. Die Breite ist dagegen bei allen Grafikeen gleich.
function MyFunction_Grafik_generieren($MySessionID) { $BildPfad = '/grafiken/0001.jpg'; $mein_bild = @ImageCreateFromJPEG($BildPfad); //Bild aus Datei laden //Original Breite und Hoehe des Bildes holen $original_breite = imagesx($mein_bild); $original_hoehe = imagesy($mein_bild); //Neue Breite und Hoehe des Bildes $neue_breite = $original_breite / 2; $neue_hoehe = $original_hoehe / 2; //Groesse aendern $mein_bild_geaendert = imagecreatetruecolor($neue_breite, $neue_hoehe); imagecopyresampled($mein_bild_geaendert, $mein_bild, 0, 0, 0, 0, $neue_breite, $neue_hoehe, $original_breite, $original_hoehe); //Ausgabe header ("Content-type: image/png"); //Bei JPEG leidet die Qualitaet ImagePNG($mein_bild_geaendert); die(); //Script-Bearbeitung stopen } //Ende MyFunction_Grafik_generieren
Leider ist mir nicht bekannt wie man mein Vorgehen nennt, also ist auch die Suche etwas kompliziert.
CU==>Eisbeer<==
-
dann teile doch nicht durch 2, sondern rechne dir einen passenden faktor aus den bekannten größen aus. wo liegt denn dein problem genau? ist es das ausrechnen oder das programmieren?
-
Mein Problem liegt mehr an der Berechnung. Momentan habe ich es so gelößt...
Nur scheint es bei näherer Betrachtung nicht zum Original-Bild zu passen[php]
function MyFunction_Grafik_generieren(MySessionID) { BildPfad = '/grafiken/0001.jpg';BildPfad); //Bild aus Datei laden
//Original Breite und Hoehe des Bildes holen
mein_bild);
mein_bild);
**
//Neue Breite und Hoehe des Bildes
if("original_hoehe" > 115) { neue_hoehe = 115 * round("original_breite");
neue_hoehe" * round("original_hoehe");
}else
{
original_hoehe";
original_breite";
}
**
//Groesse aendern
neue_breite, mein_bild_geaendert, $mein_bild, 0, 0, 0, 0, $neue_breite, $neue_hoehe, $original_breite, $original_hoehe);//Ausgabe
header ("Content-type: image/png"); //Bei JPEG leidet die Qualitaet
ImagePNG ($mein_bild_geaendert);
die(); //Script-Bearbeitung stopen
} //Ende MyFunction_Grafik_generieren
[/php]==>Eisbeer<==
-
sollte funktionieren...
$w = deine_original_breite; $h = deine_original_hoehe; $nw = neue_breite; $nh = neue_hoehe; bool useHeight; $i = $nh * $w / $h; useHeight = ( $i <= $nw ); if ( useHeight ) { $w = $i; $h = $nh; } else { $h = $nw * $h / $w; $w = $nw; } // in $w und $h sind nun die neuen Werte