Python利用pillow判断图片完整性

简介:

1、安装第三方库。

1
pip install pillow

2、函数示例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#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 problem

5、

6、Pillow中文文档


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1830138如需转载请自行联系原作者


RQSLT

相关文章
|
7月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
588 3
|
7月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1964 0
|
11月前
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
860 68
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
282 1
|
9月前
|
数据采集 存储 监控
Python爬虫实战:批量下载亚马逊商品图片
Python爬虫实战:批量下载亚马逊商品图片
|
11月前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
2668 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
777 0
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
1106 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
305 1
|
计算机视觉 Python
Python中Pillow库的常见用法和代码示例
Pillow是Python中广泛使用的图像处理库,支持丰富的图像操作功能,包括但不限于打开、保存、缩放、裁剪、旋转、调色等。本文通过一系列示例介绍Pillow的基本用法,涵盖图像的加载与显示、尺寸调整、裁剪与旋转、亮度调整、格式转换、滤镜应用、图像合成及像素级操作等。首先需通过`pip install pillow`安装库,随后可通过导入`PIL.Image`等模块开始图像处理任务。无论是初学者还是进阶用户,都能从Pillow提供的强大功能中获益。
854 0

推荐镜像

更多