python处理图片之PIL模块简单使用方法


Posted in Python onMay 11, 2015

本文实例讲述了python处理图片之PIL模块简单使用方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/env python  
#encoding: utf-8 
import Image  
class myimg: 
  def __init__(self, open_file, save_file): 
    self.img = Image.open(open_file) 
    self.save_file = save_file 
  def Change_Size(self, percent=100, height=None, width=None): 
    ''''' 
    percent:以百分比来决定大小 
    height, width:以指定的高、宽来决定大小 
    ''' 
    if not (height and width): 
      width,height = self.img.size   
    new_img = self.img.resize((width*percent/100,height*percent/100),Image.BILINEAR) 
    new_img.save(self.save_file) 
  def Rotation(self, angle): 
    ''''' 
    angle: 旋转的度数 
    ''' 
    rot_img = self.img.rotate(angle) #旋转 
    rot_img.save(self.save_file) 
  def Save_as(self, filename): 
    ''''' 
    filename: 另存为图片格式,直接根据后缀名来 
    ''' 
    self.img.save(filename)  
  def Draw_Something(self): 
    ''''' 
        利用ImageDraw来画图形 
    ''' 
    import ImageDraw 
    draw = ImageDraw.Draw(self.img) 
    width,height = self.img.size 
    draw.line(((0,0),(width-1,height-1)),fill=255) #画直线 
    draw.line(((0,height-1),(width-1,0)),fill=255) 
    draw.arc((0,0,width-1,height-1),0,360,fill=255) #画椭圆 
    self.img.save(self.save_file) 
  def Enhance_Something(self): 
    ''''' 
        利用 ImageEnhance来增强图片效果 
    ''' 
    import ImageEnhance 
    brightness = ImageEnhance.Brightness(self.img) 
    bright_img = brightness.enhance(2.0) ##亮度增强 
    bright_img.save(self.save_file) 
    sharpness = ImageEnhance.Sharpness(self.img) 
    sharp_img = sharpness.enhance(7.0) #锐度增强 
    sharp_img.save(self.save_file) 
    contrast = ImageEnhance.Contrast(self.img) #对比度增强 
    contrast_img = contrast.enhance(2.0)  
    contrast_img.save(self.save_file) 
if __name__ == "__main__": 
  file_name = r"D:\test.png" 
  save_file = r"D:\save.png" 
  saveas_file = r"D:\save_as.bmp" 
  oimg = myimg(file_name, save_file) 
  oimg.Change_Size(30) 
  oimg.Rotation(45) 
  oimg.Save_as(saveas_file) 
  oimg.Draw_Something() 
  oimg.Enhance_Something()

原图:

python处理图片之PIL模块简单使用方法

处理过的画图:(锐化过的)

python处理图片之PIL模块简单使用方法

PS:此外还有另一个比较常用的模块,image模块。

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

Python 相关文章推荐
Python切换pip安装源的方法详解
Nov 18 Python
python遍历文件夹下所有excel文件
Jan 03 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
python assert的用处示例详解
Apr 01 Python
python plotly绘制直方图实例详解
Jul 22 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
Django 再谈一谈json序列化
Mar 16 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
python 8种必备的gui库
Aug 27 Python
Python中super().__init__()测试以及理解
Dec 06 Python
python自定义解析简单xml格式文件的方法
May 11 #Python
python引用DLL文件的方法
May 11 #Python
深入解析Python中的WSGI接口
May 11 #Python
详细解析Python中__init__()方法的高级应用
May 11 #Python
从Python的源码来解析Python下的freeblock
May 11 #Python
详解Python的Django框架中的templates设置
May 11 #Python
Python素数检测的方法
May 11 #Python
You might like
很实用的一个完整email发送程序
2006/10/09 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
react高阶组件添加和删除props
2019/04/26 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
Django权限机制实现代码详解
2018/02/05 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
python Matplotlib模块的使用
2020/09/16 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
先进个人推荐材料
2014/12/29 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android