【发布时间】:2012-08-09 09:00:13
【问题描述】:
我想使用 HTML5 Canvas 调整从客户端的 iOS 相机拍摄的图像的大小,但我一直在这个奇怪的错误中运行,如果图像大于 ~1.5mb,则图像的比例错误
它适用于桌面,但不适用于带有媒体上传 API 的最新 iOS 版本。
您可以在此处查看示例:http://jsbin.com/ekuros/1
知道如何解决这个问题吗?这是内存问题吗?
$('#file').on('change', function (e) {
var file = e.currentTarget.files[0];
var reader = new FileReader();
reader.onload = function (e) {
var image = $('<img/>');
image.on('load', function () {
var square = 320;
var canvas = document.createElement('canvas');
canvas.width = square;
canvas.height = square;
var context = canvas.getContext('2d');
context.clearRect(0, 0, square, square);
var imageWidth;
var imageHeight;
var offsetX = 0;
var offsetY = 0;
if (this.width > this.height) {
imageWidth = Math.round(square * this.width / this.height);
imageHeight = square;
offsetX = - Math.round((imageWidth - square) / 2);
} else {
imageHeight = Math.round(square * this.height / this.width);
imageWidth = square;
offsetY = - Math.round((imageHeight - square) / 2);
}
context.drawImage(this, offsetX, offsetY, imageWidth, imageHeight);
var data = canvas.toDataURL('image/jpeg');
var thumb = $('<img/>');
thumb.attr('src', data);
$('body').append(thumb);
});
image.attr('src', e.target.result);
};
reader.readAsDataURL(file);
});
【问题讨论】:
-
我已经在我的代码上尝试了 120 万张照片,但问题是一样的。你可以在orientation.gokercebeci.com查看它
-
我刚刚打了这个。你能相信吗!?!
-
这在 iOS 7 下的 iPhone4 上已修复,但有趣的是,该问题在 iOS 7 下的 iPhone5C 上并未修复,实际上比以前更糟。
-
有谁知道这个bug是否在iOS8中仍然存在?
-
直到今天仍然如此吗?
标签: javascript ios html canvas