こんにちは、事前に助けてくれてありがとう。私はphonegapアプリを書いていますが、アスペクトを失ったり、誤って画像をトリミングしたりせずに写真を縮小することはできません. 以下の関数の「imageData」は、カメラが撮影した写真の 64 ビット文字列です。私のページのキャンバスに画像を描くことはできますが、写真が横向きに撮られた場合、それは一緒に砕かれます. scale 関数または drawimage 関数を使用して拡大縮小しない場合、写真の上隅のみが取得されます。例: onPhotoDataSuccess 関数で画像の幅が 1296 ピクセル、高さが 968 ピクセルであることを示す写真を撮りました。しかし、iPhone 上の私のキャンバスは幅 272 ピクセル (ポートレート モード) です。私はウェブ上でさまざまなスケーリング方法を試しましたが、これが最も近いようです。私は何を間違っていますか?
function onPhotoDataSuccess(imageData)
{
var myImage = new Image();
var thecanvas = document.getElementById("queImg");
var ctx = thecanvas.getContext("2d");
myImage.onload = function()
{
thecanvas.setAttribute('width', '100%');
thecanvas.setAttribute('height', 'auto');
ctx.scale((myImage.width * 0.15), (myImage.height * 0.15));
ctx.drawImage(myImage, 0, 0);
}
myImage.src = "data:image/jpeg;base64," + imageData;
}