移动的 Safari 渲染 缩减 Canvas?

我正在尝试可视化对象加载的本地图像 FileReader 在 Canvas 在 Safari 手机上 iOS6. 但每个图像都有 data-URL 以垂直刻度可视化。 那个虫子吗? 在 Chrome 它显示正确。

http://jsbin.com/aqirel/1/edit
http://i.stack.imgur.com/qLgmA.png
/向上: Canvas, 在底部:原始图像/

有没有办法解决这个错误? 那个虫子吗?

如果我首先使用应用程序更改设备上的图像大小 "PhotoWizard" /将其减少到宽度 720 像素/, 那 Canvas 正确显示它。 似乎这是使用相机应用程序进行的图像尺寸或图像的问题:

http://jsbin.com/aqirel/2/edit
我尝试了OT的提案。
https://twitter.com/jaffatheca ... 17312
, 它看起来更好,但仍然得到垂直规模:

http://jsbin.com/aqirel/3/edit
https://dl.dropbox.com/u/60375 ... 2.png
我今天尝试过 Galaxy Nexus 随身安装 Android 4.1.1. 按预期工作,所以它真的看起来像一个问题 mobile Safari:

https://dl.dropbox.com/u/60375 ... g.png
已邀请:

风见雨下

赞同来自:

这可能是由于限制资源的限制。 iOS Safari. 根据以下链接, JPEG 更多文件 2 M像素将减少。

https://developer.apple.com/li ... -SW15
我不信 canvas 在 Safari 无法正确应对这个替补席。

我创建了一些旁路路径,定义是否绝默绝默,并且它将其拉伸到源大小。

https://github.com/stomita/ios-imagefile-megapixel

小明明

赞同来自:

var cnv = document.createElement/"canvas"/;
ctx = cnv.getContext/"2d"/;

image = new Image//;

image.src = src;

image.onload = function// {

var size = scaleSizeRatio/image.width,image.height/;
cnv.width = size[0];
cnv.height = size[1];
ctx.drawImage/image, 0, 0, image.width, image.height, 0, 0, image.width , image.height/;

var div = container;
div.appendChild/cnv/;

}


ctx.drawImage/image, 0, 0, image.width, image.height, 0, 0, image.width , image.height/; 此功能将纠正压缩问题 iPod 超过一个 3 MB。 首先,如果你的图像更多 3 MB,计算图像的缩放宽度和高度,并安装此宽度和高度 canvas. 然后调用函数 drawImage. 这将提供您预期的最终形象......

要回复问题请先登录注册