我正在使用HTML5 for iPad构建应用程序,以将图片上传到服务器。当我单击这样的输入文件元素时:
<input id='fileup' type='file' accept='image/*' name='upf' onchange='abv();'/>
它可以从设备相机拍摄照片或从现有相机上传。然而,在拍摄照片时,基于拍摄照片时设备的方向旋转所得到的图像。我想要做的是弄清楚捕获图像的方向,并尝试在服务器端旋转它。
请注意,我无法访问任何iOS工具或框架,因为此应用程序完全基于Web。
那么,有没有关于我可以在客户端或服务器端访问的图片方向的信息,这样我就可以将图像旋转到正确的位置?我听说过EXIF数据,但我不确定如何访问它,以及是否能提供所需的信息。
我在服务器端使用python,但也欢迎使用C / C ++中的解决方案。
感谢。
答案 0 :(得分:1)
我在服务器端使用python
因此,您可以使用jpegtran-cffi Python包来提供执行EXIF 自动转换的功能:
# jpegtran can transform the image automatically according to the EXIF
# orientation tag
photo = JPEGImage(blob=requests.get("http://example.com/photo.jpg").content)
print photo.exif_orientation # "6" (= 270°)
print photo.width, photo.height # "4320 3240"
corrected = photo.exif_autotransform()
print corrected.exif_orientation # "1" (= "normal")
print corrected.width, corrected.height # "3240 4320"
注意:摘自README。
作为替代方案,还有一个名为jhead的便捷命令行工具,您可以将其用于同一目的:
# Remove EXIF orientation
# i.e. rotate the image accordingly and reset the orientation
# flag to 1 (default, i.e. origin = TopLeft)
# WARNING: the image file is overwritten!
# NOTE: it also works with a wildcard: jhead -autorot *.jpg
jhead -autorot myimage.jpg