2017-06-08 6 views
0

Ich habe mehrere Bilder in einem einzigen Bild. Wie male ich den Ausschnitt eines Bildes in der Leinwand?wie ein Bild (Rahmen) in Leinwand croppen

Party Pooper ist, dass die Leinwand über CSS gestreckt und reaktionsfähig ist. Beispiel:

Sag mal, ist jedes Bild 100x100px und ich möchte Rahmen malen "5". So habe ich Rahmen folgende Position zu malen: x100, Y200, width100, Höhe 100

Mein Code sieht ungefähr so ​​aus:

this.ctx = this.canvas.get(0).getContext("2d"); 
this.ctx.drawImage(this.image, - this.imageWidth * x, - this.imageHeight * y, this.image.width, this.image.height); 

Alle Werte kommen richtig in meiner Konsole aber das Ergebnis ist Jack Scheiße. Habe ich drawImage falsch interpretiert?

+0

Ist diese muss eine Leinwand sein? Ich sehe keinen Grund, du zeichnest nicht. Warum nicht CSS3-Sprites verwenden? Sie wurden dafür gemacht. – Rafael

+0

zwei Gründe: Die Funktion ist an einen Bildlauf gebunden, und ich kann die Größe meines Sprites nicht ändern. innerhalb des responsiven Behälters richtig. – user980018

+0

Sie könnten sicherlich immer noch CSS-Sprites verwenden, indem Sie die 'backgroundPosition' relativ zur Größe des responsiven Containers manipulieren. – Rafael

Antwort