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

オリジナルサイズは、私は、幅960ピクセル幅と高さで同じ画像を必要とする960×540
よりも大きくなっています。ここで
はキャンバスを使用して、私の試みです:小さい画像を作成する方法

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); 

コンソールは述べています - autoはdefined`はありませんが、私はどのような高さのparamとして配置する見当がつかない。 heightのparamなしの疲れ

I:

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

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

任意のヘルプ?

キャンバスを使用せずに、小さな画像を作成する別の方法がありますか?

+0

drawImageメソッドの「height」パラメータはオプションです。あなたは単純にそれを渡さない、またはnullを渡すだけで試しましたか? – ADyson

+0

あなたは実際にそれをキャンバスに必要としますか?さまざまな高さ/幅のプロパティを指定して別の ''タグを作成できますか?画像を編集しようとしているのですか、それとも別の画像を表示するのですか? – ADyson

+0

@ADyson、はい私は試しました、私の更新を見てください。新しい画像(960 x auto)をダウンロードする必要があるので、表示するだけでなく、新しい画像を作成する必要があります。 – bonaca

答えて

4

次のコードを試してみることができます。

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

これは、さまざまな 'naturalHeight'にかかわらず、常に150pxの高さのイメージを与えます。 – bonaca

+0

あなたはcssを使って画像に高さを与えていますか? – spankajd

+0

いいえ、新しい画像はまったく表示されません。ダウンロードするコードがあります。表示されている場合は、それも常に150pxの高さです。たぶん 'c1.height'を定義する必要がありますか? – bonaca

関連する問題