我目前正在网页上使用网络摄像头(不是本机摄像头)在用户的手机上拍照。像这样:
var video: HTMLVideoElement;
...
var context = canvas.getContext('2d');
context.drawImage(video, 0, 0, width, height);
var jpegData = canvas.toDataURL('image/jpeg', compression);
通过这种方式,我现在可以从网络摄像机成功生成JPEG图像数据,并将其显示在网页上。
但是,我发现EXIF数据丢失。据此:https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage
Canvas.drawImage()将忽略图像中的所有EXIF元数据,包括方向。此行为在iOS设备上尤其麻烦。您应该自己检测方向,并使用rotate()使其正确。
我希望JPEG图像包含EXIF GPS数据。在此过程中是否有简单的方法可以包含相机EXIF数据?
谢谢!
首先,根据我到目前为止的发现,在画布上下文绘制期间无法包括exif数据。
第二,有一种解决方法,即从原始JPEG文件中提取exif数据,然后在画布上下文绘制之后,将提取的exif数据放回新绘制的JPEG文件中。
杂乱无章,但现在可以解决了。谢谢!