MobileSafari未通过JavaScript返回正确的图像大小信息
我有一个HTML。出于某种原因,MobileSafari正在报告任何图像的MobileSafari未通过JavaScript返回正确的图像大小信息,javascript,image,mobile-safari,Javascript,Image,Mobile Safari,我有一个HTML。出于某种原因,MobileSafari正在报告任何图像的图像。宽度/高度属性,超过1700像素为其值的一半。也就是说,JPG的width属性是,比如说,2000,但mobilesafarijavascript将其报告为1000。如果我用1700像素宽的图像尝试相同的代码,我会得到正确的宽度 我确实加载了两个图像(不同维度的相同图像)并显示JavaScript大小值。我试过: Chrome 22、Safari 5.1.7、Firefox 15.0.1均采用Mac OS X 10
图像。宽度/高度
属性,超过1700像素为其值的一半。也就是说,JPG的width
属性是,比如说,2000,但mobilesafarijavascript将其报告为1000。如果我用1700像素宽的图像尝试相同的代码,我会得到正确的宽度
我确实加载了两个图像(不同维度的相同图像)并显示JavaScript大小值。我试过:
- Chrome 22、Safari 5.1.7、Firefox 15.0.1均采用Mac OS X 10.6.8(正确大小)
- iOS模拟器4.3 SDK 3.2(大小不正确)
- 带iOS 5.1的iPad 2(尺寸不正确)
- 带iOS 5.1的iPhone 4S(尺寸不正确)
var-imgBig,imgSmall;
函数init(){
imgBig=新图像();
imgBig.onload=把手IG;
imgBig.src=“/images/size.jpg”;
imgSmall=新图像();
imgSmall.onload=把手小;
imgSmall.src=“/images/test1.jpg”;
document.getElementById(“浏览器”).innerHTML=navigator.userAgent;
}
函数handleBig(){
document.getElementById(“dimensionsBig”).innerHTML=imgBig.width+“x”+imgBig.height;
document.getElementById(“testBig”).src=imgBig.src;
}
函数handleSmall(){
document.getElementById(“dimensionsSmall”).innerHTML=imgSmall.width+“x”+imgSmall.height;
document.getElementById(“testSmall”).src=imgSmall.src;
}
这是HTML代码:
MobileSafari图像尺寸测试
您的浏览器:
大图像尺寸:(应为1700x1134)
小图像尺寸:(应为2000x1334)
是的,它的尺寸和重量都有限制
由于iOS上的可用内存,它可以处理的资源数量受到限制:
解码的GIF、PNG和TIFF图像的最大大小对于内存小于256 MB的设备为300万像素,对于内存大于或等于256 MB的设备为500万像素。
也就是说,确保宽度*高度≤ 3*1024*1024适用于RAM小于256 MB的设备。
请注意,解码大小远远大于图像的编码大小:
JPEG的最大解码图像大小为3200万像素,使用
二次抽样。由于以下原因,JPEG图像最高可达3200万像素
子采样,允许JPEG图像解码为具有一个
十六像素数。大于200万像素的JPEG图像
被二次采样,也就是说,被解码成更小的尺寸。JPEG子采样
允许用户查看最新数码相机的图像
对于具有以下特性的设备,画布元素的最大大小为300万像素:
小于256 MB RAM和500万像素(适用于具有更大或更高容量的设备)
等于256 MB内存。画布对象的高度和宽度为150
x 300像素(如果未指定)
一些可能有帮助的链接:
- :检查了解iOS资源限制部分
干杯我不确定这是否是我出现上述问题的原因,因为正如您在我制作的图片中所看到的,“大”图像是2000x1334=2668000,小于3x1024x1024=3145728像素。请尝试降低图片的质量(权重)以查看它是否改变了某些内容。你有没有尝试过我提供的解决方法,看看它是否改变了什么?我上传了一个新的“大”文件,它被压缩了(20%的质量),看起来很糟糕。。。72kb(压缩)。。。MobileSafarith报告的尺寸仍然没有变化最大尺寸适用于解码图像-注释中有一个解决方案。。。我知道。。。我是在回答你的“尝试降低图片的质量(重量),看看它是否改变了什么。”在我的例子中,我加载了一幅3000px正方形的图片,iOS中的Javascript告诉我onload事件触发正常,但当时报告的高度和宽度为零。我想我也有同样的问题。