这里有一个小问题,我一直在努力寻找答案。
我正在使用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时,图像以正确的宽度绘制出来,但它是一个超级压扁的图像,占据了画布的顶部条纹。
两个设备分别注册了screen.height和screen.width分别为480和320,window.devicePixelRatio为2.
我认为drawImage函数会固有地适当缩放图像。
我似乎无法弄清楚我做错了什么。谢谢你的帮助!
答案 0 :(得分:0)
“我意识到iphone4和iphone4s之间的图像在像素方面的大小不同,但至少是相同的比例。”
iPhone 4和iPhone 4s具有完全相同的屏幕尺寸和像素比率以及像素数等。它们基本相同。如果你画的是不同的,那就是你的问题。
iPhone 3gs及以下版本均配有非视网膜显示屏。 iPhone 5有视网膜,但更高。
如果情况并非如此,那么它就是你代码中的内容(这意味着除非你发布它,否则我们无能为力)。
我非常怀疑问题出在Phonegap本身。