python使用Image处理图片常用技巧分析


Posted in Python onJune 01, 2015

本文实例讲述了python使用Image处理图片常用技巧。分享给大家供大家参考。具体分析如下:

使用python来处理图片是非常方便的,下面提供一小段python处理图片的代码,需要安装图像处理工具包PIL(Python Image Library)。

#coding=utf-8
import Image
import urllib2
import StringIO
import os
#改变图片大小
def resize_img(img_path):
  try:
    img = Image.open(img_path)
    (width,height) = img.size
    new_width = 200
    new_height = height * new_width / width
    out = img.resize((new_width,new_height),Image.ANTIALIAS)
    ext = os.path.splitext(img_path)[1]
    new_file_name = '%s%s' %('small',ext)
    out.save(new_file_name,quality=95)
  except Exception,e:
    print e
#改变图片类型
def change_img_type(img_path):
  try:
    img = Image.open(img_path)
    img.save('new_type.png')
  except Exception,e:
    print e
#处理远程图片
def handle_remote_img(img_url):
  try:
    request = urllib2.Request(img_url)
    img_data = urllib2.urlopen(request).read()
    img_buffer = StringIO.StringIO(img_data)
    img = Image.open(img_buffer)
    img.save('remote.jpg')
    (width,height) = img.size
    out = img.resize((200,height * 200 / width),Image.ANTIALIAS)
    out.save('remote_small.jpg')
  except Exception,e:
    print e
if __name__ == '__main__':
  img_path = 'test.jpg'
  resize_img(img_path)
  change_img_type(img_path)
  img_url = 'http://img.hb.aicdn.com/042f8a4a70239f724ff7b9fa0fc8edf18658f41022ada-WcItWE_fw554'
  handle_remote_img(img_url)

可能会遇到的问题

ImportError: No module named Image

解决办法:安装Python Imaging Library(PIL)

sudo easy_install PIL

安装PIL出现:
— JPEG support not available

— ZLIB (PNG/ZIP) support not available

— FREETYPE2 support not available

操作jpeg图片和png图片出现:

IOError: decoder jpeg not available 和 IOError: encoder zip not available

解决办法:
(1) 删除已经安装的PIL

sudo rm -rf /usr/local/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.egg/

(2) 安装相关库
sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev

sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/

sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/

sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/

(3) 重新安装PIL
sudo easy_install PIL

终端出现:

— JPEG support available
— ZLIB (PNG/ZIP) support available
— FREETYPE2 support available

现在试试,已经ok了

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python控制台显示时钟的示例
Feb 24 Python
Python读取Excel的方法实例分析
Jul 11 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
Python如何读取MySQL数据库表数据
Mar 11 Python
python机器学习之神经网络实现
Oct 13 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
Python响应对象text属性乱码解决方案
Mar 31 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
Python实现简单得递归下降Parser
May 02 Python
python实现图片变亮或者变暗的方法
Jun 01 #Python
wxPython中listbox用法实例详解
Jun 01 #Python
在Python的Django框架下使用django-tagging的教程
May 30 #Python
使用url_helper简化Python中Django框架的url配置教程
May 30 #Python
在Python的Django框架中simple-todo工具的简单使用
May 30 #Python
Python中Django框架下的staticfiles使用简介
May 30 #Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 #Python
You might like
PHP生成随机密码类分享
2014/06/25 PHP
PHP中的表达式简述
2016/05/29 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
ie 调试javascript的工具
2009/04/29 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
微信小程序上线发布流程图文详解
2019/05/06 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
python实现彩票系统
2020/06/28 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
Pyqt5实现英文学习词典
2019/06/24 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
python绘制雷达图实例讲解
2021/01/03 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
镇创先争优活动总结
2014/08/28 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技