http://onionworks.net/2006/imageservice/canvas

drawText (canvas : nodeset, text : string, positionOrRectangle : nodeset, font : nodeset, fill : nodeset, [textFormat : nodeset]) : nodeset

Die Methode ermöglicht das Einfügen von Text in ein Bild. Der Methode sind die Parameter canvas, text, positionOrRectangle, font, fill und optional textFormat zu übergeben.

canvas ist der Canvas auf dem gezeichnet werden soll anzugeben.

text ist der auszugebende Text anzugeben.

positionOrRectangle kann ein Punkt oder Rechteck übergeben werden. Diese können mit den Methoden createPoint oder createRectangle der Imageservice-Kernfunktionen erstellt werden. Wird ein Rechteck angegeben, so wird der Text auf diesen Bereich reduziert und Überlängen gegebenfalls abgeschnitten.

font ist die Schriftart des Text anzugeben. Die Schriftart kann mit den Methoden createFont oder loadFont der Imageservice-Kernfunktionen erstellt werden.

fill ist die Vollfarbe der Schriftart anzugeben. Die Vollfarbe kann mit der Methode createSolidFill der Imageservice-Kernfunktionen erstellt werden.

textFormat kann optional angegeben werden. Das Textformat kann mit der Methode createTextFormat der Imageservice-Kernfunktionen angegeben werden. Wird das Textformat nicht angegeben, so wird die createTextFormat Methode mit den Werten Left für alignment, 0 für angle und 1 für interCharacterSpace aufgerufen.

Das folgende Beispiel zeigt die Ausgabe des weißen Textes "Beispieltext" in der fettgeschrieben Schriftart Arial.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ise="http://onionworks.net/2006/imageservice/encoders" xmlns:iscan="http://onionworks.net/2006/imageservice/canvas" xmlns:is="http://onionworks.net/2006/imageservice" xmlns:b="http://onionworks.net/2004/renderengine/binary" xmlns:onion="http://onionworks.net/2004/data" version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no" />
<xsl:template match="/recordcard">
<xsl:variable name="workspace" select="is:createWorkspace(picture, true())" />
<xsl:variable name="drawText" select="iscan:drawText(iscan:createCanvas($workspace),'Beispieltext', is:createPoint(0,0),is:createFont('Arial',10,'Bold'), is:createSolidFill(255,255,255,255),is:createTextFormat('Left',10,0))" />
<xsl:variable name="doWrite" select="is:writeWorkspace($workspace, ise:createJpegEncoder(80))" />
<b:output mimeType="{picture/@onion:mimeType}">
<b:webResponse expires="60" />
</b:output>
</xsl:template>
</xsl:stylesheet>
Anwendungsbeispiel drawText

In diesem Beispiel wird der weiße Text "Beispieltext" in ein vorhandenes Bild geschrieben. Der Text ist um 10 Grad gedreht, hat eine Ausrichtung nach links und einen Zeichenabstand von 1. Die Schriftart des Textes wurde auf Arial mit der Schriftgröße 10 und der Schnittart bold gewählt.

Die Methode »drawText()« liefert darüber hinaus ein Nodeset zurück, das Informationen über die Textgröße enthält. Darauf kann beispielsweise zugegriffen werden, um die Fläche bei einer grafischen Navigation an die Textlänge anzupassen. Der folgende Quellcode zeigt beispielhaft den Inhalte der Variablen »drawText« aus dem obigen Beispiel.

<size width="66" height="17" />
Beispiel für einen Rückgabewert der Methode »drawText()«