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中去空格函数的用法
Aug 21 Python
python实现逆波兰计算表达式实例详解
May 06 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
深入理解Python中字典的键的使用
Aug 19 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
Python调用.NET库的方法步骤
Dec 27 Python
python模块内置属性概念及实例
Feb 18 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
php防止sql注入代码实例
2013/12/18 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
python线程中同步锁详解
2018/04/27 Python
Sanic框架Cookies操作示例
2018/07/17 Python
python mysql断开重连的实现方法
2019/07/26 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Python 防止死锁的方法
2020/07/29 Python
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
中海讯通笔试题
2015/09/15 面试题
网吧收银员岗位职责
2013/12/14 职场文书
建筑工程管理专业自荐信范文
2013/12/28 职场文书
给女朋友的道歉信
2014/01/10 职场文书
西式婚礼证婚词
2014/01/12 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
洗手间标语
2014/06/23 职场文书
红白喜事主持词
2015/07/06 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
如何拟写通知正文?
2019/04/02 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python
css样式important规则的正确使用方式
2022/06/10 HTML / CSS