Zum Inhalt springen

Gifbuilder: Textelemente stauchen

Erstellt am 29. September 2006 · 2 Antworten · letzte Antwort am 5. Oktober 2006

Tags: Frage

Nejah ·

Hallo!

Ich möchte ein Textelement auf einen Banner rendern.
Als Formatvorgabe habe ich eine bestimmte Schriftart, sowie die Angabe, dass der Text in der Breite um 70 % gestaucht (zusammengequetscht) werden soll (resultiert vermutlich aus Photoshop-Vorlagen), die Höhe soll erhalten bleiben.

Der folgende Codeschnipsel ist so nicht funktionsfähig (das hatte ich ehrlich gesagt auch nicht erwartet), soll aber helfen zu verdeutlichen, was ich meine. Der Text wird hier zwar gerendert, aber ohne Änderung an der Breite. Wie müsste ich es richtig einstellen, bzw. ist ein solches Vorgehen überhaupt möglich? Kann man überhaupt andere Operatoren als "+" und "-" nutzen? Ich habe bisher noch kein Beispiel dazu gefunden.

                    20 = TEXT
                    20.text < temp.line
                    20.maxW = [20.w]*0.7
                    20.minW = [20.w]*0.7
                    20.offset = 100,70
                    20.niceText = 1
                    20.align = left
                    20.fontSize = 30
                    20.fontFile = fileadmin/fonts/verdana.ttf
                    20.fontColor = black
Nejah ·

Hallo!

Vielleicht kann sich nur niemand vorstellen, was ich genau meine. Ich habe in einem anderen Forum bereits zwei Bilder (Vorher-/Nachheransicht) angehängt, die verdeutlichen sollen, was ich erreichen möchte. Hier der Link zum Posting:
>> hier

Kann ich hier eventuell mit SCALE arbeiten? Wie wird dieses angewendet? Aus der Referenz ergibt sich leider nicht viel zu diesem Objekt. Bisher ist es mir nur gelungen, damit das komplette Image-Objekt zu skalieren, nicht aber einzelne Elemente...

Nejah ·

Hallo!

Inzwischen bin ich auf eine -meine Erachtens etwas weniger elegante- Lösung gekommen:

temp.text = IMAGE
temp.text {
   
  file = GIFBUILDER
  file {
    XY        = [10.w],[10.h]
    backColor = #000000
     
    10 = TEXT
    10 {
      offset    = 0,[10.h]
      text      = Here comes the text
      fontSize  = 30
      fontFile  = fileadmin/arial.ttf
      fontColor = #000000
    }
     
    20 = SCALE
    20 {
      width     = [10.w]*70/100
      height    = [10.h]
    }
  }
   
  mask < temp.text.file
  mask {
    backColor    = #000000
    10.fontColor = #FFFFFF
  }
}



10 = IMAGE
10.file = GIFBUILDER
10.file {
  10 = IMAGE
  10 {
            # ---Konfigurationen für ein Hintergrundbild---
  }
   
  20 < temp.text
}

In diesem Beispiel wird zunächst ein Bild (temp.text) mit einem Text auf transparentem Grund erzeugt.
Die Transparenz wird durch eine Maske erreicht.
Mittels SCALE wird die gewünscht Breite erreicht (hier: 70 % der Ursprungsbreite).
Am Schluss wird temp.text noch in das endgültige Bildobjekt hineinkopiert.

Nachteil: Da ich hier mit einer Maske arbeite, wird der Text ein wenig fetter, als er eigentlich sein sollte. Leider haben transparentColor und transparentBackground bei mir nicht funktioniert 🙁
Wer eine elegantere Lösung hat: Immer her damit 🙂