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

本文实例讲述了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()

原图:

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

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

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

(0)

相关推荐

  • Python实现文件按照日期命名的方法

    本文实例讲述了Python实现文件按照日期命名的方法.分享给大家供大家参考.具体实现方法如下: 这里实现文件按照创建的时期批量重命名的功能 # -*- coding: utf-8 -*- import os import time import datetime rootDir = "I:/1/" dic={} for dirName,subDirs,fileList in os.walk(rootDir): print dirName for fn in fileList: fnpa

  • Python实现获取照片拍摄日期并重命名的方法

    本文实例讲述了Python实现获取照片拍摄日期并重命名的方法.分享给大家供大家参考,具体如下: python获取照片的拍摄日期并重命名.不支持重复处理的中断. 重命名为:拍摄日期__原文件名 import os import exifread def getExif(filename): FIELD = 'EXIF DateTimeOriginal' fd = open(filename, 'rb') tags = exifread.process_file(fd) fd.close() if

  • Python实现自动为照片添加日期并分类的方法

    本文实例讲述了Python实现自动为照片添加日期并分类的方法.分享给大家供大家参考,具体如下: 小时候没怎么照相,所以跟别人说小时候特别帅他们都不信.小外甥女出生了,我给买了个照相机,让她多照相.可惜他舅目前还是个屌丝,买了个700的屌丝照相机,竟然没有自动加日期的功能.试了几个小软件,都不好用,大的图像软件咱又不会用.身为一个计算机科学与技术专业的学生,只能自立更生了. 听说Python有个图形库,不错,在照片上打日期很容易,于是我就下了这个库.对Python不熟,一面看着手册一面写的.完成了

  • python实现识别相似图片小结

    文章简介 在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系. 当然了,图像识别这个话题作为计算机科学的一个分支,不可能就在本文简单几句就说清,所以本文只作基本算法的科普向. 如有错误,请多包涵和多多指教. 参考的文章和图片来源会在底部一一列出. 以及本篇文章所用的代码都会在底下给出github地址. 安装相关库 python用作图像处理的相关库主要有openCV(C++编写,提供了python语言的接口),PIL,

  • python批量下载图片的三种方法

    有三种方法,一是用微软提供的扩展库win32com来操作IE,二是用selenium的webdriver,三是用python自带的HTMLParser解析.win32com可以获得类似js里面的document对象,但貌似是只读的(文档都没找到).selenium则提供了Chrome,IE,FireFox等的支持,每种浏览器都有execute_script和find_element_by_xx方法,可以方便的执行js脚本(包括修改元素)和读取html里面的元素.不足是selenium只提供对py

  • python简单实现旋转图片的方法

    本文实例讲述了python简单实现旋转图片的方法.分享给大家供大家参考.具体实现方法如下: # rotate an image counter-clockwise using the PIL image library # free from: http://www.pythonware.com/products/pil/index.htm # make sure to install PIL after your regular python package is installed impo

  • 用python找出那些被“标记”的照片

    源码传送门 环境准备 下面的两个第三方模块都可以直接通过pip快速安装,这里使用py36作为运行环境. python3.6 requests exifread 思路 遍历目录 拉取数据集合 遍历集合取得exif exif信息整理,并获取实体地址 拷贝文件到结果样本目录 生成json报告文件 基础知识 下面是现今相片中会存在与GPS相关的关键字,大牛亦可一比带过~ [参考] { "GPSVersionID": "GPS版本", "GPSLatitudeRef

  • python抓取网页中图片并保存到本地

    在上篇文章给大家分享PHP源码批量抓取远程网页图片并保存到本地的实现方法,感兴趣的朋友可以点击了解详情. #-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file_extension(file): return os.path.splitext(file)[1] '''創建文件目录,并返回该目录''' def mkdir(path): # 去除左右两边的

  • Python实现拼接多张图片的方法

    本文实例讲述了Python实现拼接多张图片的方法.分享给大家供大家参考.具体分析如下:   这里所述计划实现如下操作:   ① 用Latex写原始博文,生成PDF文档; ② 将PDF转成高清的PNG格式的图片; ③ 将多个PNG格式的图片合并成一大张图片; ④ 将最终的大图片直接上传到博文编辑器中 好了,如果将PDF文档转换成其他的图片格式呢?我建议windowns下可用Adobe  Acrobat X Pro软件完成这个工作,操作步骤如下面两图所示.注意在图二中一定要自己指定一个分辨率,不用用

  • Python比较两个图片相似度的方法

    本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一些,太小的图片不好比较.附件提供完整测试代码和对比用的图片. 复制代码 代码如下: #!/usr/bin/python # Filename: histsimilar.py # -*- coding: utf-8 -*- import Image def make_regalur_image(img

随机推荐