从手机上传的图片是横向的

时间:2015-07-18 18:08:25

标签: javascript jquery-mobile mobile meteor

我有一个网站可以直播并获得新的注册。我遇到了一个问题。我的大多数用户来自移动设备,当您从移动设备上传个人资料图片时,它就会横向移动。这很奇怪,因为它在桌面版本中没有这样做。

有解决方法吗?我一直在寻找几个小时,似乎找不到任何东西。

我想检查图像方向并保存,使其显得直立。

编辑:我正在使用lepozepo:s3并直接上传到亚马逊s3。

2 个答案:

答案 0 :(得分:0)

有人在此处遇到类似问题:https://github.com/CollectionFS/Meteor-CollectionFS/issues/504

我假设您正在使用CollectionFS,因为它是最受欢迎的处理上传的程序包,但您尚未在问题中指明。

您可以通过向存储适配器添加写入转换来更正此问题 并使用graphicsmagick的autoOrient选项。

transformWrite: function(fileObj, readStream, writeStream) {
    gm(readStream, fileObj.name).autoOrient().stream().pipe(writeStream);
}

补充阅读:Images turning sideways/upside down after being uploaded via PhoneGap (iOS)

答案 1 :(得分:0)

据我所知 lepozepo:s3 直接将文件上传到amazon s3,这对大文件有用,但我不建议将其用于图片(头像)上传,因为你需要改变它并确保它实际上是图像而不是破坏(并且没有人试图破解你:D)

如果您仍想使用 lepozepo:s3 ,那么您应该在客户端进行google canvas图像处理。有一些流星包在客户端调整大小和裁剪,所以你会得到这个想法。也许使用画布,您可以自动定位图像https://github.com/thinksoftware/meteor-image-resize-client

还有一些AWS Lambda项目可以帮助您转换s3存储桶上的图像,但我不知道如何设置它。

第二个选项是通过您的流星服务器上传图像,该服务器将按您希望的方式对其进行转换。我使用 CollectionFS 包。它并不完美,但目前在流星上没有理想的文件上传解决方案。

我猜..理想情况下,您需要为图片上传运行单独的服务器,但是谁想要处理它:D