0

这是一个小问题,我一直在努力寻找答案。

我正在使用 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 函数本身会适当地缩放图像。

我似乎无法弄清楚我做错了什么。谢谢您的帮助!

4

1 回答 1

0

“我意识到 iphone4 和 iphone4s 之间的图像在像素方面的大小不同,但至少是相同的比例。”

iPhone 4 和 iPhone 4s 的屏幕尺寸和像素比例、像素数等完全相同。它们本质上是相同的。如果你画的每一个都不一样,那你就有问题了。

iPhone 3gs 及以下机型具有非视网膜显示屏。iPhone 5 有视网膜,但更高。

如果不是这种情况,那么它就是您的代码中的某些内容(这意味着除非您发布它,否则我们无能为力)。

我非常怀疑问题出在 Phonegap 本身。

于 2013-05-07T23:31:52.290 回答