Information Technology Reference
In-Depth Information
Sehen wir uns zuerst an, wie der Hintergrund zustande kommt:
var bg = new Image();
bg.src = 'icons/pattern_125.png';
bg.onload = function() {
context.globalAlpha = 0.5;
context.fillStyle = context.createPattern(bg,'repeat');
context.fillRect(0,0,canvas.width,canvas.height);
};
Die ersten beiden Zeilen erzeugen wieder ein neues Image -Objekt und setzen
dessen src -Attribut auf das Bild pattern_125.png im Verzeichnis icons . Genau
wie bei drawImage() müssen wir vor dem Definieren des Patterns sicherstellen,
dass das gewünschte Bild auch wirklich geladen ist. Die Funktion bg.onload()
enthält dabei den eigentlichen Code zum Generieren des sich wiederholenden
Musters, das wir mit 50 % Opazität auf der gesamten Canvas-Fläche auftragen.
Über das gleiche Prozedere füllen wir den Titeltext Yosemite! mit pattern_107
.png .
Für die überlappenden Bildausschnitte setzen wir kurzerhand das ganze Yose-
mite-Bild yosemite.jpg als Muster ein und arbeiten dann in einer for -Schleife
das Input-Array extents ab, in dem sich x -, y -, width - und height -Werte der
gewünschten Ausschnitte befinden. Über den Aufruf von fillRect() wird der
entsprechende Bildbereich als Füllmuster gezeigt und mittels strokeText()
mit einem zusätzlichen Rahmen versehen.
var extents = [
{ x:20,y:50,width:120,height:550 } // und 7 weitere ...
];
var image = new Image();
image.src = 'images/yosemite.jpg';
image.onload = function() {
context.fillStyle = context.createPattern(
image,'no-repeat'
);
for (var i=0; i<extents.length; i++) {
var d = extents[i]; // short-cut
context.fillRect(d.x,d.y,d.width,d.height);
context.strokeRect(d.x,d.y,d.width,d.height);
}
};
Search WWH ::




Custom Search