需求说明:ios系统再上传图片时 有时候保存到后台时是旋转过的,这时候就需要后台做下处理
1,
def Compression(fileName):
logger.info("图片路径%s"%len(fileName))
exif, img = get_exif_data(fileName)
orientation = "Orientation"
if orientation in exif:
if exif[orientation] == 3:
img = img.rotate(180, expand=True)
elif exif[orientation] == 6:
img = img.rotate(270, expand=True)
elif exif[orientation] == 8:
img = img.rotate(90, expand=True)
timestamp = str(int(time.time()))
img.save("./static/upload/%s%s"%(timestamp,fileName.name))
2,
from PIL import Image
from PIL.ExifTags import TAGS
def get_exif_data(fname):
ret = {}
img = Image.open(fname)
try:
if hasattr( img, '_getexif' ):
exifinfo = img._getexif()
else:
exifinfo=None
if exifinfo != None:
for tag, value in exifinfo.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
except IOError:
print('IOERROR ' + fname)
return ret,img