验证图片是否能正常读取、打开,然后校验图片内容,输出检测到的图片格式。
1. 校验可直接打开的文件
from PIL import Image
try:
image = Image.open('fire.jpg') # 检查文件是否能正常打开
image.verify() # 检查文件完整性
image.close()
except:
try:
image.close()
except:
pass
raise
else:
print('Image OK, format is %s.' % image.format)
2. 校验图片的字节流
import io
from PIL import Image
try:
with open('fire.png', 'rb') as image_file:
image_byte = image_file.read() # 获得图片字节流,可以从文件或数据接口获得
image_file = io.BytesIO(image_byte) # 使用BytesIO把字节流转换为文件对象
image = Image.open(image_file) # 检查文件是否能正常打开
image.verify() # 检查文件完整性
image_file.close()
image.close()
except:
try:
image_file.close()
except:
pass
try:
image.close()
except:
pass
raise
else:
print('Image OK, format is %s.' % image.format)
PIL库的使用参考:https://zhuanlan.zhihu.com/p/58926599