Zum Inhalt springen

GIFBUILDER incl. Text-Rendering in Scheduler-Task - Pfadproblem

Erstellt am 10. Dezember 2012 · 5 Antworten · letzte Antwort am 14. Dezember 2012

Tags: Bilder, Frage

Julian.​Hofmann ·

Hallo zusammen.

Habe ein kleines Problem mit der Pfadüberprüfung von Fontfiles im GIFBUILDER, wenn dieser im Backend verwendet wird.

Hintergrund ist, dass ich für eine Galerie viele Bilder mit Wasserzeichen (incl. Text) versehen müsste. On-demand läuft das initial im Frontend immer in Timeouts. Daher wollte ich die Bilder via Scheduler-Task vorgenerieren lassen.
Nach etwas Recherche habe ich diverse Lösungen gefunden, wie man an ein cObject im Backend kommt, das TypoScript ausliest und auch, wie der GIFBUILDER im richtigen Verzeichnis arbeitet. Soweit funktioniert der GIFBUILDER auch. Als Problem erweist sich jedoch das Rendern von Text. Der Pfad zum Fontfile mag mir einfach nicht gelingen:
- fileadmin/vera.ttf wird um PATH_typo3 ergänzt, um absoluten Pfad zu erhalten: /var/www/(...)/httpdocs/typo3/fileadmin/templates/fonts/vera.ttf - da ist das Verzeichnis "typo3" zuviel, da der Task in "typo3" arbeitet, der GIFBUILDER aber wohl von einer FE-Umgebung ausgeht (d.h. PATH_site als Basis)
- /var/www/(...)/fileadmin/vera.ttf wird ganz verworfen und gegen Default (/var/www/(...)/httpdocs/typo3/t3lib/fonts/nimbus.ttf) ersetzt
- /fileadmin/vera.ttf wird ganz verworfen und gegen Default (/var/www/(...)/httpdocs/typo3/t3lib/fonts/nimbus.ttf) ersetzt
- ../fileadmin/vera.ttf wird ganz verworfen und gegen Default (/var/www/(...)/httpdocs/typo3/t3lib/fonts/nimbus.ttf) ersetzt

Soweit ich mich durchgehangelt habe, ist die Ursache in den Funktionen tslib_gifBuilder::checkFile() und t3lib_stdGraphic::prependAbsolutePath() zu suchen.

Hat irgendwer eine Idee? Einen Ansatz? Vielelicht sogar schon eine Lösung?

Mir sind die Ideen ausgegangen... :-(

Viele Grüße
Julian

danton ·

Hi

Mir ist zwar nicht ganz klar warum Du was per Scheduler vorladen willst aber ok :-)

Bei mir sieht das z.b. so aus

10 = IMAGE
10{
  wrap = |
  file = GIFBUILDER
  file{
    XY = 1920,1080
    format = jpg
    quality = 80
    
    10 = IMAGE
    10{
      file = fileadmin/bilder/dyn/dyn_pic_kreisverlauf.png
    }
  
    20 = TEXT
    20{
      text = Dein Text
      fontSize = 101
      fontFile = fileadmin/templates/font/deineschrift.ttf
      offset = 0,1080/2+32
      align = center
    }
  }
}

Gruß Niels

Julian.​Hofmann ·

Hallo Nils.
Danke für die Antwort. Die prinzipielle Syntax bzw. das Zusammenbasteln des TypoScript für Bild mit Wasserzeichen ist mir klar und funktioniert im Frontend auch.
Ich bräuchte das Ganze aber funktuionsfähig im Backend. Und da würde die Zeile "fontFile = fileadmin/templates/font/deineschrift.ttf" aufgrund der automatischen Pfadergänzung scheitern. Genau dafür suche ich eben nach einer Lösung.

Julian.​Hofmann ·

Eine Galerie, die pro Seite ca 30 Fotos ausgibt, die jeweils mit ca. 3MB hinterlegt sind, braucht eeeewig, um die Bilderzeugung vorzunehmen. Im besten Fall wartet der Besucher nur ewig, im worst-case läuft das ganze in ein PHP-Timeout. Daher soll eben ein Scheduler-Task via Cronjob das ganze nachts vorgenerieren,s odass die Bilder bereits fix und fertig in typo3temp/pics/ liegen und der Besucher schnell die Anzeige bekommt. Via CLI aufgerufen, gilt eine andere PHP-Laufzeit bzw. ist es dem Cronjob auch egal wenn er ggf etwas warten muss.