Vorschaubilder erzeugen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Vorschaubilder erzeugen

    Hallo zusammen,

    habe mir eine Funktion geschrieben bzw. ein Codeschnipsel an meine Bedürfnisse angepasst um Vorschaubilder zu erzeugen. Übergeben tue ich an diese nun einen Pfad des aktuellen Bildes, den Ort des neuen Bildes, sowie maximale breite und maximale höhe des neuen Bildes:

    Und hier die eigentliche Funktion:

    Wie oben angedeutet will ich nun $max_width = "200"; ODER $max_height = "360";
    Heißt für mich, dass das Bild auf jeden Fall kleiner als 201x361 sein muss.

    Lade ich nun ein Bild in quer hoch, habe ich beispielsweise die Größe 200px × 124px erzeugt bekommen - Alles paletti, weil die maximalen Angaben nicht überschritten wurden.
    Lade ich jedoch ein hochkant Bild hoch, erhalte ich auf einmal 269px × 360px. Es wurde sich also an der maximalen Höhe orientiert, aber ich habe ja festgelegt, dass die Breite niemals über 200px gehen darf, wie kann es hier dann sein, dass diese 269 beträgt?

    Kann mir jemand helfen, wo der Fehler steckt? :(

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Tobbe5 ()

  • Ich glaub du hast dich etwas verheddert. Du musst lediglich schauen, welcher Skalierungsfaktor kleiner ist:

    Quellcode

    1. $skal_vert = $max_height/$src_height;
    2. $skal_hor = $max_width/$src_width;
    3. $skal = min($skal_vert, $skal_hor); // kleinster Faktor
    4. if ($skal > 1) {
    5. $skal = 1; // Bild soll ja nicht vergrößert werden
    6. }
    7. $dest_height = $src_height*$skal;
    8. $dest_width = $src_width*$skal;


    Habs nicht getestet, müsste aber passen.