python处理图片之PIL模块简单使用方法
作者:像风一样的自由 发布时间:2023-06-25 21:42:05
标签: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
投稿
猜你喜欢
- 前一段时间有发过一个简单的JMAIL邮件发邮件的代码,今天就把这个代码做一个具体的注解,并增加了另外两个格式的代码,并举几个简单
- 那么在集合函数中它有什么用呢 ?假设数据库有一张表名为student的表。如果现在要你根据这张表,查出江西省男女个数,广东省男生个数,浙江省
- 1.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组
- 在整个产品设计的过程中,视觉设计与交互设计的“工序”非常紧密,两者关系也是相辅相成,互相影响。而视觉界面作为最直接与用户交流的层面,如何把交
- asp之日期和时间函数示例可以使用日期和时间函数来得到各种格式的日期和时间函数语法说明示例NowNow()取得系统当前的日期和
- 本文实例讲述了Golang算法之田忌赛马问题实现方法。分享给大家供大家参考,具体如下:【田忌赛马问题】输入:输入有多组测试数据。 每组测试数
- 阅读上一章:Chapter 7 锚点 Chapter 8 再谈清单先前在第一章,我们讨论过几种标记清单的做法,研究以<ul>和&
- 连续看到几个和 Oracle 优化器隐含参数 _sort_elimination_cost_ratio 相关的优化案例(Refer Refe
- 随着网络的发展,人们通过各种方式使用它。今天,网络购物,跟朋友或者不认识的人聊天,管理银行账户,以及一些日常应用,共享照片或视频,等等。事实
- 包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等。 (一)挂起操作在安装S
- 今天一个域名查询系统出现故障,该系统是用的ASP调用XMLHTTP获取whois库的数据,具体错误如下: msxml3.dll 错
- '================================================ '
- 和大多数的语言脚本一样,学习ASP最好的方法就是亲身尝试ASP,使用你自己的系统安装PWS或者IIS。你可以边学习边在你自己的服务器上测试A
- 互联网充斥着枯燥的设计,惠普、IBM、戴尔、微软,以及其他数不尽的网站(相似的布局,相似的配色)。可能有人会说通过这样一种标准化的界面可以使
- 过年这段时间由于线上数据库经常压力过大导致响应非常缓慢甚至死机,咬咬牙下大决心来解决效率不高的问题!首先是由于公司秉承快速开发原则,频繁上线
- 生产系统随着业务增长总会经历一个业务量由小变大的过程,可扩展性是考量数据库系统高可用性的一个重要指标;在单表/数据库数据量过大,更新量不断飙
- 在许多用SQL Server实现的新的企业系统设计中,系统设计师需要在给数据结构和管理应用程序逻辑的定位上做出具有关键性意义的决定。SQL
- 可以,具体方法如下::<% set fs=createobject("scripting.
- 在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范
- 研究编码,得知GB2312编码与区位码的关系,尝试之后,得此程序。搜索,似乎没人写,故发此地。1.简述(1)GB2312标准的定义,其实就是