91 Nachrichten unter 31 Themen von 36 Mitgliedern
[SilverStripe Roadmap][Changelog]

Foto im PHP-Code skalieren mit setWidth()

Seite: 1 1013 mal gelesen
  • suntrop
    suntrop Community Member
    10 Beiträge

    Foto im PHP-Code skalieren mit setWidth()

    Ich wollte in einem Modul, für eine Foto-Gallerie, beim Auslesen der Fotos direkt zu große Bilder runterskalieren. Nicht erst später im Template.

    Aber weder die eine noch die andere Funktion funktioniert. Die erste liefert mir scheinbar ein leeres Objekt zurück, die zweite resultiert in einem Fehler im Front-end (Request konnte nicht gehandelt werden).

    $image->setWidth(590);
    $image->resizeByWidth(590);

    Weiß jemand warum?

    danke und Grüße
    suntrop
  • Lukin
    Lukin Community Member
    97 Beiträge

    Re: Foto im PHP-Code skalieren mit setWidth()

    Schau mal,..

    ich mache hier genau das, was du auch machen willst:

    Hole mir Via SQLQuery ein File:

    $sqlPB = new SQLQuery();
    $sqlPB->select("F.*");
    $sqlPB->from("F AS F");
    $sqlPB->where("F.ID='".$myID."'");
    $resultPB = $sqlPB->execute();


    Dann wird das Reslutat als Image-Klasse instanziert ( müsste auch irgendwie ohne den foreach gehen, es befindet sich ja definitiv nur eine Zeile im Resultat)

    foreach($resultPB as $rowPB) {                        
    $produktBild=new Image($rowPB);                           
    }


    und ich kann die Image->Methoden benutzen und das entstande Objekt zurückgeben.



    return $produktBild->setWidth(170);



    Das Ganze steht als Funktion im Controller meines PageTypes und kann über den Funktionsnamen im Template angesprochen werden.

    Hope it hepls :)
    Grüßle
  • suntrop
    suntrop Community Member
    10 Beiträge

    Re: Foto im PHP-Code skalieren mit setWidth()

    Das ist interessant. Dann scheint es grundsätzlich zu funktionieren. Werde mir morgen nochmal die Funktion genauer ansehen, weil so viel anders als bei dir ist sie gar nicht. Ich prüfe lediglich, ob die Breite größer als ein Maximum ist und falls ja, dann wird $image skaliert und falls nein, dann wird das Objekt einfach so weitergereicht.

    Danke soweit schonmal. Ich melde mich morgen nochmals, wenn ich herausgefunden habe, wo exakt der Fehler auftritt oder weshalb.


    (Bei mir läuft noch v 2.4, hatte ich vergessen zu erwähnen.)
  • suntrop
    suntrop Community Member
    10 Beiträge

    Re: Foto im PHP-Code skalieren mit setWidth()

    Ahaa, das gechachete Foto-Objekt enthält scheinbar nicht die gleichen Eigenschaften. Dort fehlte mir die ID, mit der ich weitergearbeitet habe. Habe sie nun manuell hinzugefügt ($this->image->ID = $image->ID;)

    Nochmals Danke und Grüße
    - suntrop -

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: Molkenstehler