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导出Excel图表以及导出为图片的方法
Nov 07 Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
python 判断三个数字中的最大值实例代码
Jul 24 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
Python基于进程池实现多进程过程解析
Apr 30 Python
Python selenium爬取微博数据代码实例
May 22 Python
Python猫眼电影最近上映的电影票房信息
Sep 18 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 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中的实现trim函数代码
2007/03/19 PHP
php 破解防盗链图片函数
2008/12/09 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
批量修改RAR文件注释的php代码
2010/11/20 PHP
使用PHP实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
python 创建一维的0向量实例
2019/12/02 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
毕业自荐书
2013/12/09 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
JVM之方法返回地址详解
2022/02/28 Java/Android