在Linux系统中,使用Python进行图像处理通常会依赖两个库:PIL(Python Imaging Library)和Pillow。PIL是Python的一个老牌图像处理库,而Pillow是PIL的更新和维护版本,它包含了PIL的全部功能并解决了许多兼容性和安装问题。本教程将指导你如何在Linux上安装这两个库,并提供一个使用Pillow库批量转换图片的实例。 正常情况下,你可以通过Python的包管理器pip来安装PIL或Pillow。执行`pip install PIL==1.1.7`或`pip install Pillow==2.9.0`即可。然而,安装过程中需要注意的是,如果输出信息中包含"*** TKINTER support not available"、"JPEG support not available"、"WEBP support not available"等提示,这意味着某些特定的图像格式支持没有被正确安装。例如,如果你的系统缺少JPEG库,那么你将无法处理JPEG格式的图片。 为了解决这些问题,你需要安装相应的依赖库。例如,对于JPEG支持,Debian系的Linux系统可以使用`apt-get install libjpeg8-dev`,RedHat系系统使用`yum install libjpeg-devel`。同样,对于PNG支持,你需要`apt-get install zlib1g-dev`(Debian系)或`yum install libpng-devel`(RedHat系),而对于WebP支持,使用`apt-get install libwebp-dev`(Debian系)或`yum install libwebp-devel`(RedHat系)。 安装依赖库之后,可能需要手动创建软链接。在Debian 7和Ubuntu 14.04上,执行: ```bash ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib ln -s /usr/lib/x86_64-linux-gnu/libwebp.so /usr/lib ``` 而在CentOS 6.5上,使用: ```bash ls -s /usr/lib64/libjpeg.so /usr/lib ls -s /usr/lib64/libz.so /usr/lib ls -s /usr/lib64/libwebp.so /usr/lib ``` 创建软链接后,重新安装PIL或Pillow,可以使用`pip install -I PIL==1.1.7`或`pip install -I Pillow==2.9.0`,其中`-I`表示强制重新安装。安装完成后,检查输出信息以确认所有格式都已支持。 如果在安装源码时遇到问题,可以下载PIL的源码包,如`wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz`,解压后进入目录`tar -xzvf Imaging-1.1.7.tar.gz && cd Imaging-1.1.7`,然后执行`python setup.py install`。如果仍存在问题,可以尝试运行`python setup.py build_ext -i`,然后再重新安装。 批量转换图片的场景很常见,例如需要缩小高分辨率的照片以便上传。以下是一个使用Pillow库实现批量转换的简单Python代码示例: ```python #coding=utf-8 from PIL import Image def resize_image(input_path, output_path, size): with Image.open(input_path) as img: img_resized = img.resize(size) img_resized.save(output_path) if __name__ == "__main__": # 假设我们有所有图片在'input_folder'目录,希望将它们缩小为(800, 600),保存在'output_folder' input_folder = 'input_folder' output_folder = 'output_folder' size = (800, 600) for filename in os.listdir(input_folder): if filename.endswith('.jpg') or filename.endswith('.png'): input_file = os.path.join(input_folder, filename) output_file = os.path.join(output_folder, filename) resize_image(input_file, output_file, size) ``` 这段代码定义了一个函数`resize_image`,接收输入图片路径、输出图片路径和目标尺寸,然后使用Pillow库打开图片,调整尺寸并保存。在主程序中,遍历指定目录下的所有.jpg和.png文件,调用`resize_image`进行转换。 通过这个实例,你可以在Linux环境中有效地管理和处理图片,无论是安装必要的库还是编写自动化脚本来批量处理图片任务,都可以借助Python和Pillow库轻松实现。





















- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 大学生网络使用情况调查分析报告.doc
- 供电综合自动化经典控制设计专题方案.docx
- 基于PLC的饮料自动罐装系统毕业设计方案.doc
- 智能电网配电自动化改造及可靠性研究(1).docx
- 基于matlab的图像增强技术的研究(1).doc
- 一级MS-Office-教学--计算机基础课程PPT参考幻灯片.ppt
- 计算机网络技术试题库.doc
- 小学语文信息化教学策略的研究(1).docx
- 审计档案工作的信息化建设问题探讨(1).docx
- 浅谈中职计算机教学中学生创新能力的培养(1).docx
- 关于观网络安全教育个人观后感参考范文5篇.doc
- 电子商务毕业实习总结5篇.doc
- 互联网教育项目商业计划书(课堂PPT).ppt
- PPP综合项目管理专项方案.doc
- 网络营销SEO优化.ppt
- 区块链技术与应用.ppt


