发布时间:2019-09-01 09:52:31编辑:auto阅读(2125)
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
3、转图片格式为jpg。
# 处理一张图片
# 正常返回 True;异常返回 False
def Img2Jpg(srcFile, dstFile):
print('Img2Jpg %s ...' % srcFile)
exMsg = ''
try:
srcImg = Image.open(srcFile)
dstImg = srcImg.resize((108, 150), Image.ANTIALIAS).convert('RGB')
dstImg.save(dstFile, 'JPEG')
except:
exMsg = '* %s' % traceback.format_exc()
print(exMsg)
if exMsg:
return False
return True
# 网络版(bytes)
# 处理一张图片
# 正常返回 True;异常返回 False
def Img2Jpg(buf, dstFile):
print('Img2Jpg %s ...' % srcFile)
exMsg = ''
try:
srcImg = Image.open(io.BytesIO(buf))
dstImg = srcImg.resize((108, 150), Image.ANTIALIAS).convert('RGB')
dstImg.save(dstFile, 'JPEG')
except:
exMsg = '* %s' % traceback.format_exc()
print(exMsg)
if exMsg:
return False
return True 相关阅读:
2、Open PIL image from byte file
4、Pillow生成gif文件大小问题:Gif image size problem
*** walker ***
上一篇: python目录判断与创建
下一篇: Linux-Python-Scapy的T
51271
50712
41315
38128
32589
29497
28350
23212
23183
21506
1582°
2303°
1911°
1852°
2172°
1895°
2586°
4323°
4175°
2979°