【发布时间】:2014-07-28 15:09:51
【问题描述】:
我有一个页面,您可以在其中浏览图像,然后在其上绘制并保存原始版本和带注释的版本。我正在利用 megapix-image.js 和 exif.js 帮助正确渲染来自多个移动设备的图像。它工作得很好,除了某些方向。例如,在 iPhone4s 上拍摄的垂直照片被 exif 视为方向 6,并被 megapix-image 相应地翻转,因此它可以很好地呈现在画布上。由于某种原因,当我后来在它上面画的时候,好像画的东西是颠倒的。鼠标和触摸的行为方式相同。坐标对我来说是正确的(意味着它们匹配一个工作的水平图片和一个非工作的垂直图片),当 megapix-image.js 翻转它时画布的高度和宽度也是如此。这让我相信它与上下文有关,但老实说,我不太确定。我有一个显示行为的工作部分的 JS 小提琴。只需从移动设备浏览垂直拍摄的照片,或在移动设备上拍摄垂直格式的照片并使用它。我认为所有人都会表现出同样的行为。
最终的渲染是这样完成的:
function RenderImage(file2) {
if (typeof file2[0].files[0] != 'undefined') {
EXIF.getData(file2[0].files[0], function () {
orientation = EXIF.getTag(this, "Orientation");
var file = file2[0].files[0];
var mpImg = new MegaPixImage(file);
var resCanvas1 = document.getElementById('annoCanvas');
mpImg.render(resCanvas1, {
maxWidth: 700,
maxHeight: 700,
orientation: orientation
});
});
}
}
但完整的 jsfiddle 在这里:
http://jsfiddle.net/awebster28/Tq3qU/6/
有人知道我的线索吗?
【问题讨论】:
标签: javascript iphone canvas html5-canvas