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模块。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上帝De助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值