JavaScript Canvas Bilder werden Komisch angezeigt, Lösung?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
diese habe ich mit CSS angegeben.

Und genau das ist das Problem: Die CSS-Eigenschaften geben lediglich die Breite und Höhe des Canvas-Elements an. Du musst aber die Breite und Höhe des Koordinatensystems des Canvas-Elements setzen, siehe:

The canvas element has two attributes to control the size of the element's bitmap: width and height. [...] If an attribute is missing, or if parsing its value returns an error, then the default value must be used instead. The width attribute defaults to 300, and the height attribute defaults to 150.

https://html.spec.whatwg.org/#attr-canvas-width, zul. abgerufen 2018-03-21T21:43+01:00

D. h., wenn du diese Angaben auslässt, wird die Standard-Größe (300x150 Pixel) verwendet. Live-Beispiel: https://jsfiddle.net/73eqqtpc/

Wie du siehst, ist das Bild abgeschnitten. Nun streckst du das abgeschnittene Bild mit CSS, sodass es unscharf wird. Live-Beispiel: https://jsfiddle.net/cnqepa1g/

Stattdessen musst du die HTML-Attribute width und height benutzen. Live-Beispiel: https://jsfiddle.net/mbjg0xav/


Bertigerwolfram 
Beitragsersteller
 22.03.2018, 19:15

Danke, ich habe nämlich vorher immer von alle höhe und breite in CSS angegeben

0

Wenn das Bild verschwommen ist, dann ist die Auflösung des Bildes zu gering.

Ich würde dir aber, sofern du sehr viel mit dem Canvas vor hast, das KonvaJS Framework empfehlen, damit arbeite ich derzeit recht viel.

https://konvajs.github.io/docs/

Es nimmt der sehr viel Arbeit ab, vorallem was das Neuzeichnen des Canvasses angeht. Außerdem bietet es viele Möglichkeiten was z.B. Animationen angeht.