Phonegap 摄像头绘制 canvas 失真
Phonegap camera draw on canvas distorted
我正在使用 Phonegap Camera Plugin 在 Canvas 上绘制捕获的图像。
<canvas id="canvas"></canvas>
和 JS:
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var x = 0;
var y = 0;
var width = window.innerWidth;
var height = window.innerHeight;
var imageObj = new Image();
imageObj.onload = function() {
context.drawImage(imageObj, x, y, width, height);
};
imageObj.src = imageURI;
投影图像看起来失真(拉伸,宽度比实际宽度大)。
怎样才能正常显示图片,如css width:100%; height:auto?
如果您的图片与屏幕的比例不同,它会被拉伸,因为您告诉它拉伸到宽度和高度:context.drawImage(imageObj, x, y, width, height);
。您可以尝试去掉宽度、高度参数。
您可能需要计算缩放比例:
var ratio;
if (imageObj.width>width) {
ratio = width/imageObj.width;
}
else if (imageObj.height > height) {
ratio = height/imageObj.height;
}
else {
ratio = 1;
}
context.drawImage(imageObj, x, y, imageObj.width*ratio, imageObj.height*ratio);
我正在使用 Phonegap Camera Plugin 在 Canvas 上绘制捕获的图像。
<canvas id="canvas"></canvas>
和 JS:
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var x = 0;
var y = 0;
var width = window.innerWidth;
var height = window.innerHeight;
var imageObj = new Image();
imageObj.onload = function() {
context.drawImage(imageObj, x, y, width, height);
};
imageObj.src = imageURI;
投影图像看起来失真(拉伸,宽度比实际宽度大)。
怎样才能正常显示图片,如css width:100%; height:auto?
如果您的图片与屏幕的比例不同,它会被拉伸,因为您告诉它拉伸到宽度和高度:context.drawImage(imageObj, x, y, width, height);
。您可以尝试去掉宽度、高度参数。
您可能需要计算缩放比例:
var ratio;
if (imageObj.width>width) {
ratio = width/imageObj.width;
}
else if (imageObj.height > height) {
ratio = height/imageObj.height;
}
else {
ratio = 1;
}
context.drawImage(imageObj, x, y, imageObj.width*ratio, imageObj.height*ratio);