这是一个小问题,我一直在努力寻找答案。
我正在使用 ios 原生相机拍摄照片,然后将其发送到 phonegap 以在其上运行一些 javascript。
我将图像传递给 javascript,然后将其绘制到我准备好的一个小画布元素的左侧,在右侧我将生成原始图像的更改图像(并排比较)。我意识到 iphone4 和 iphone4s 之间的图像在像素方面的大小不同,但至少是相同的比例。我的抽奖代码:
function imageLoaded(img, frontCamera) {
element = document.getElementById("canvas1");
c = element.getContext("2d");
// read the width and height of the canvas- scaled down
width = element.width; //188 94x2
height = element.height; //125
//used for side by side comparison of images
w2 = width / 2;
// stamp the image on the left of the canvas
if (frontCamera) {
c.drawImage(img, 0, 0, 94, 125);} else{
c.drawImage(img, 0, 0, 94, 125)}
// get all canvas pixel data
imageData = c.getImageData(0, 0, width, height);
//more stuff here
}
当我在 iphone4 上执行此代码时,图像应与更正后的图像并排显示。当我使用iphone4s时,图像以正确的宽度绘制出来,但它是一个超级压扁的图像,占据了画布的顶部。
两个设备都分别注册了 480 和 320 的 screen.height 和 screen.width,window.devicePixelRatio 为 2。
我认为 drawImage 函数本身会适当地缩放图像。
我似乎无法弄清楚我做错了什么。谢谢您的帮助!