Information Technology Reference
In-Depth Information
Zusätzlich muss noch die Skalierung der Bildbreite um 0.9 durch Verschiebung
um 320*0.1 nach rechts ausgeglichen werden.
context.setTransform(1,0,0,1,60,160);
context.transform(1,Math.tan(-0.175),0,1,0,0);
context.translate(320*0.1,Math.tan(0.175)*320);
context.scale(0.9,1);
context.drawImage(icons[0],0,0,320,320);
context.drawImage(effects[0],0,320,320,160);
Damit wäre unser bisher schwierigstes Canvas-Beispiel geschafft - das Er-
gebnis kann sich sehen lassen und verlangt geradezu danach, im JPEG- oder
PNG-Format gespeichert zu werden. Firefox kommt uns da im Gegensatz zu
den anderen Browsern entgegen - klicken Sie mit der rechten Maustaste auf
den Canvas, und schon können Sie unsere Komposition speichern. Wählen Sie
B ILD A NZEIGEN aus, erscheint eine seltsam anmutende, sehr, sehr, sehr lange
Adresse im URL-Feld, die mit data:image/png;base64,... beginnt und uns direkt
zum nächsten Abschnitt bringt - canvas.toDataURL() .
5.12 Base64-Kodieren mit »canvas.toDataURL()«
Base64 beschreibt ein Verfahren zur Kodierung von Binärdaten als ASCII-Zei-
chenfolgen und wird in Canvas dazu verwendet, um aus dem Canvas-Inhalt, der
ja eigentlich nur als Raster im Speicher existiert, eine weiter verarbeitbare, so-
genannte data: URL zu erzeugen. Die Methode dazu lautet dementsprechend:
canvas.toDataURL(type, args)
Als type übergeben wir den MIME-Type des gewünschten Output-Formats und
verwenden dazu entweder image/png oder image/jpeg . Ersteres steht für das
Default-Format beim Kodieren und kommt auch dann zum Einsatz, wenn wir
type weglassen oder ein Format spezifizieren, mit dem der Browser nichts an-
fangen kann. Im optionalen Argument args finden gegebenenfalls zusätzliche
Parameter Platz - so zum Beispiel die Bildqualität bei der Wahl von image/jpeg
mit gültigen Zahlenwerten von 0.0 bis 1.0 .
Das Ergebnis von toDataURL() ist ein Base64-kodierter String, der im Fall des
2 x 2 Pixel großen Canvas in den benannten Farben navy , teal , lime und yellow
aus Abbildung 5.27 so aussieht:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUg
AAAAIAAAACCAYAAABytg0kAAAAF0lEQVQImQXBAQEAAA
CCIKb33ADLFql0PuYIemXXHEQAAAAASUVORK5CYII=
Search WWH ::




Custom Search