使用exif在javascript中旋转图像

我正在开发一个WebApp,用户可以在其中上传图片。我在使用某些三星手机时遇到问题。问题在于,当以横向模式拍摄照片时,将其水平保存,并将exif(orientation)变量设置为0。如果以纵向模式拍摄照片,则该照片仍以横向模式存储,但EXIF(orientation) )变量现在设置为6(对应于90度旋转)。

portrait vs landscape

According to the following discussion, JS Client-Side Exif Orientation: Rotate and Mirror JPEG Images

如果方向变量设置为6,则必须进行以下转换

case 6: ctx.transform(0, 1, -1, 0, height, 0); break;

这样会将图像旋转90度,这当然是错误的,因为图片必须保持为人像模式。

wrong portrait

该如何解决?

评论