Ergebnis 1 bis 4 von 4

Thema: Im eigenen Controller / Service ein Image als jpeg/webp erzeugen

  1. #1
    Contao-Fan
    Registriert seit
    21.12.2009.
    Beiträge
    445

    Standard Im eigenen Controller / Service ein Image als jpeg/webp erzeugen

    Hallo zusammen,

    ich würde gerne in einem eigenen Controller die Fähigkeiten von Contao in Sachen Images nutzen. Konkret geht es darum, dass ich für Immo-Objeke einen Pfad zu einem Original-Bild habe und für dieses Bild für die Ausgabe ein jpeg/webp Image erzeugen will - am besten noch mit unterschiedlichen Bildgrößen (je nach Auflösung). Als Template-Engine verwende ich Twig.

    Ich habe die Doku gelesen und bring es aber nicht wirklich zusammen, wie ich da am besten vorgehen soll. Wenn ich es richtig verstanden habe, kann ich in der Config.yml die Bildgrößen definieren (analog zu den Einträgen, die ich sonst im Theme unter Bildgrößen mache. Wie kann ich aber dann beim Generieren im Controller bzw. im Service auf diese Konfiguration zurückgreifen und sagen "dieses Bild mit diesem Setting aus der config.yml als jpeg/webp generieren" ?

    Ich hoffe, ich hab mich einigermaßen verständlich ausgedrückt

    Vielen Dank schonmal für eine kleine Hilfestellung....
    Viele Grüße aus dem Süden
    creativx
    ---- Planung ist Ersatz des Zufalls durch den Irrtum ----

  2. #2
    Contao-Fan
    Registriert seit
    21.12.2009.
    Beiträge
    445

    Standard

    Habe jetzt mal folgendes im Twig-Template versucht...einfach um mal etwas mehr durch zu steigen:

    Code:
    {% set special_size = picture_config({
        width: 400,
        height: 400,
        resizeMode: 'proportional',
        sizes: '0.75,1,1.5,2',
        items: [{
            width: 200,
            height: 100,
            media: '(max-width: 140px)',
        }]
    }) %}
    
    {{ contao_figure('1e77cb95-902a-11ea-835e-02000a14005e', 'special_size') }}
    So wie ich es verstanden habe, konfiguriere ich bei set special... mein eigenes Set und kann dies dann via contao_figure direkt abrufen. Ich bekomme allerdings eine Fehlermeldung:

    An exception has been thrown during the rendering of a template ("Mode must be one of the Contao\Image\ResizeConfiguration::MODE_* constants").
    Jemand ne Idee ?
    Viele Grüße aus dem Süden
    creativx
    ---- Planung ist Ersatz des Zufalls durch den Irrtum ----

  3. #3
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.745
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich würde zumindestens vorerst mal versuchen eine in Contao festgelegte Bildgröße zu verwenden.
    Abgesehen davon müsstest Du spezial_size m.E. mit {{spezial_size}} als Variable verwenden.

    Außerdem denke ich, dass hier das Image-studio zum Einsatz kommen müsste.

    Also so etwas in der Art

    Code:
    {{ studio.figure(figure, {attr: {class: 'image_container' ~ floatClass}}) }}
    Natürlich angepasst auf die Attribute, die Du benötigst.

    Ich würde mal im Image-Studio schauen, welche Attribute für Deinen Fall die richtigen sind.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  4. #4
    Contao-Fan
    Registriert seit
    21.12.2009.
    Beiträge
    445

    Standard

    Guten Morgen

    Mein Weg war tatsächlich schon der richtige, aber eine Kleinigkeit hatte ich falsch gemacht. Bei der Angabe der Bildgröße gehört wohl vor den Bezeichner ein Unterstrich

    Code:
    {{ contao_figure('1e77cb95-902a-11ea-835e-02000a14005e', '_estate_list') }}
    Und meine config.yml schaut dafür so aus (natürlich nur mal so schnell dahin geschrieben):

    Code:
    contao:
      localconfig:
        folderUrl: 1
      prepend_locale: false
      url_suffix: ""
      image:
          sizes:
            estate_list:
              width: 1024
              height: 512
              resize_mode: box
              formats:
                jpg: [webp, jpg]
                webp: [ webp, jpg ]
                png: [ webp, png ]
              densities: 1.25x
              css_class: example
              items:
                -
                  media: '(max-width: 512px)'
                  width: 128
                  height: 64
                  resize_mode: box
                  densities: 2x
                -
                  media: '(max-width: 1024px)'
                  width: 512
                  height: 256
                  resize_mode: box
                  densities: 1.5x
    So funktioniert das ganze
    Viele Grüße aus dem Süden
    creativx
    ---- Planung ist Ersatz des Zufalls durch den Irrtum ----

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •