我正在使用文件选择器向用户询问图像文件(png 或 jpeg)。每当我上传从 iPhone 拍摄的照片时,图像都会显得不完整。我将上传的图像作为字节保存在 mysql 数据库中,然后将它们转换为 base64 字符串。
ph = request.files[form.picture.name]
pic = request.files[form.picture.name].read()
pic = Image.open(BytesIO(pic))
pic = pic.convert('RGB')
imgByteAr = BytesIO()
pic.save(imgByteAr, format='JPEG')
imgByteAr = imgByteAr.getvalue()
pic.close()
然后将 imgByteAr 保存到我的数据库中。但是,当我从 base64 模块运行 base64.b64encode(imgByteAr).decode('utf-8') 并将其显示在 img 标签中时,图像会像这样出现。我知道 iOS 11 使用 HEIC 格式的图像,但即使我将设置更改为仅使用 JPEG,也会发生相同的错误。使用来自我的 iPhone 以外的来源的 JPEG 图像时,问题消失了。是什么让 iPhone 中的 JPEG 图像与众不同?