您的位置:首页 > 编程语言 > Python开发

Python利用pillow判断图片完整性

2016-07-26 15:20 1221 查看
1、安装第三方库。

pip install pillow
2、函数示例。
#encoding: utf-8
#author: walker
#date: 2016-07-26
#summary: 判断图片的有效性

import io
import imghdr
from os import PathLike
from PIL import Image

#判断文件是否为有效(完整)的图片
#输入参数为文件路径,或文件对象
def IsValidImage(file):
bValid = True
if isinstance(file, (str, PathLike)):
fileObj = open(file, 'rb')
else:
fileObj = file

buf = fileObj.read()
if buf[6:10] in (b'JFIF', b'Exif'):     #jpg图片
if not buf.rstrip(b'\0\r\n').endswith(b'\xff\xd9'):
bValid = False
else:
try:
Image.open(fileObj).verify()
except:
bValid = False

return bValid

#判断文件是否为有效(完整)的图片
#输入参数为bytes,如网络请求返回的二进制数据
def IsValidImage4Bytes(buf):
bValid = True
try:
Image.open(io.BytesIO(buf)).verify()
except:
bValid = False

return bValid

#判断文件是否为有效(完整)的图片
#输入参数为bytes,如网络请求返回的二进制数据
def IsValidImage4Bytes(buf):
bValid = True
if buf[6:10] in (b'JFIF', b'Exif'):     #jpg图片
if not buf.rstrip(b'\0\r\n').endswith(b'\xff\xd9'):
bValid = False
else:
try:
Image.open(io.BytesIO(buf)).verify()
except:
bValid = False

return bValid


相关阅读:
1、Image.verify
2、Open PIL image from byte file
3、如何判断JPG文件下载完整了?

4、Pillow生成gif文件大小问题:Gif image size problem5、Pillow中的 GIF87a or GIF89a6、Pillow中文文档

*** walker ***
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gif jpg requests