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
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...
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 🙂