2017-02-21 4 views
0
<img id='imgt' src='../img/crop.png' alt='img'> 

Originalgröße von imgt größer als 960 x 540.
ich in der Breite 960px Höhe und das gleiche Bild benötigen - auto.
Hier ist mein Versuch Leinwand mit:wie kleinere Bild erstellen

var c1 = document.createElement("canvas"); 
c1.width = 960; 
var ctx = c1.getContext("2d"); 
var img=document.getElementById("imgt"); 
ctx.drawImage(img, 0, 0, 960, auto); 

Console sagt - auto nicht defined` aber ich habe keine Ahnung, was als Höhe param zu setzen.

ich müde ohne height param:

ctx.drawImage(img, 0, 0, 960); 

Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': Valid arities are: [3, 5, 9], but 4 arguments provided.

Jede Hilfe?

Gibt es vielleicht eine andere Möglichkeit, ein kleineres Bild ohne Leinwand zu produzieren?

+0

die "Höhe" Parameter der drawImage Methode sind optional. Haben Sie versucht, es einfach nicht zu passieren oder Null zu passieren? – ADyson

+0

brauchst du es wirklich auf einer Leinwand? Können Sie einfach ein anderes ''-Tag mit verschiedenen angegebenen Höhen-/Breiteneigenschaften erstellen? Versuchen Sie, das Bild zu bearbeiten oder nur anders anzuzeigen? – ADyson

+0

@ADyson, ja ich habe versucht, bitte sehen Sie mein Update. Ich muss das neue Bild herunterladen (960 x Auto), also brauche ich ein neues Bild erstellt, nicht nur anzeigen. – bonaca

Antwort

4

können Sie folgenden Code versuchen.

var c1 = document.createElement("canvas"); 
c1.width = 960; 
var ctx = c1.getContext("2d"); 
var img=document.getElementById("imgt"); 

var _curWidth = c1.width; 
var _autoHeight = (_curWidth/img.naturalWidth) * img.naturalHeight 

ctx.drawImage(img, 0, 0, _curWidth, _autoHeight); 
+0

Das gibt mir immer ein Bild 150px Höhe, unabhängig von verschiedenen 'natürlichen Höhen'. – bonaca

+0

geben Sie Höhe Bild mit CSS? – spankajd

+0

Nein, das neue Bild wird überhaupt nicht angezeigt, ich habe einen Code, um es herunterzuladen. Wenn es angezeigt wird, ist es auch immer 150px Höhe. Vielleicht sollte 'c1.height' definiert werden? – bonaca

Verwandte Themen