美文网首页
PIL的常用操作

PIL的常用操作

作者: 小黄不头秃 | 来源:发表于2022-08-30 01:15 被阅读0次

    (一)PIL(python image library)的基本概念

    PIL中主要涉及几个概念:通道、模式、尺寸、坐标系统、调色板、信息和滤波器。

    通道

    首先我们要知道一张图片是怎么样的。图片是有三种颜色组成的也就是RGB三原色,一张图片可以变成红色,绿色,蓝色三张图片。这个也就是所谓的通道数。然而对于黑白或者灰度图像来说,就只有一个通道了。

    模式

    模式定义了图像的类型和像素的位宽。


    尺寸

    可以通过size属性来获取图像的储存,这是一个二元组,也就是水平和垂直方向上的像素数量。

    坐标系

    PIL使用的是笛卡尔坐标系,和我们平时数学中的坐标系有一些不同。


    调色板

    调色板模式(“P”)使用一个颜色调色板为每个像色定义具体的颜色值。

    信息

    使用info属性,可以为一张图片添加一些辅助信息。这是一个字典对象,加载和保存图片文件是,多少信息 需要处理取决于文件。

    滤波器

    对于多个输入的像素因设为一个输出像素的几何操作。

    (二)代码

    import PIL.Image as image
    import PIL.ImageDraw as draw
    import PIL.ImageFont as imagefont
    import PIL.ImageFilter as imgfilter
    
    path = "./img/cat1.jpg"
    img1 = image.open(path)
    # img1.show() # 使用默认工具打开图片
    print(img1.size) # (500, 400)
    img2 = img1.resize((250,250)) # 重置大小
    # img2.show()
    
    img3 = img2.rotate(45,expand=True) #旋转图片
    # img3.show()
    img3.save("./cat.jpg")
    
    img = draw.Draw(img1)
    img.rectangle((0,0,500,400),outline="green",width=3) # 画矩形
    img.line((0,0,500,400),fill="yellow",width=3)# 划线
    img.point((250,200),fill="red")# 画点
    font = imagefont.truetype("SIMYOU.TTF",size=40) # 引入字体 幼圆字体
    img.arc((150,100,350,300),0,360,fill="white",width=3) # 画圆弧 前面可以框出一个圆,后面是圆弧的度数0-360
    img.chord((150,100,350,300),0,180,fill="white",outline="green",width=3) # 画半圆
    img.text((240,350),"猫",fill="blue",align="center",font=font) # 写字
    # img1.show()
    
    img4 = img1.convert("L") # 转换为灰度图
    # img4.show()
    
    # img5 = img1.filter(imgfilter.BLUR()) # 模糊
    img5 = img1.filter(imgfilter.CONTOUR()) # 素描
    img5.show()
    
    

    输出结果:


    相关文章

      网友评论

          本文标题:PIL的常用操作

          本文链接:https://www.haomeiwen.com/subject/wanggrtx.html