• python PIL库的相关操作


    1.PIL库概述:PIL库可以完成图像归档和图像处理两方面的功能需求。(1)图像归档:对图像进行批处理、生成图像预览、图像格式转换等;(2)图像处理:图像基本处理、像素处理、颜色处理等。

    关于PIL库Image类解析说明()

    要加载一个图像文件,im=Image.open('图像保存位置')  ,想将图像保存下来im.save('想将保存图像的位置')

    下面将用一些例子来说明:

    #im.thumbnail=((128,128))对im生成缩略图,其中(128,128)是缩略图的尺寸。

    from PIL import Image#引用PIL库
    im=Image.open('C:/Users/86183/Desktop/微信图片_20200414133515.jpg')#打开图像
    im.thumbnail((128,128))#对图像进行缩略图处理,二元组(128,128)是生成图像的大小
    im.save('C:/Users/86183/Desktop/suolvutu1.jpg')#保存
    

    <原图  <缩略图

     改变颜色实例

    from PIL import Image
    im=Image.open('C:/Users/86183/Desktop/微信图片_20200414134749.jpg')
    r,g,b=im.split()# 获取RGB通道
    newg=g.point(lambda i:i*0.9)#将G通道颜色值变为原来的0.9倍
    newb=b.point(lambda i:i<100)#选择B通道值低于100的像素点
    om=Image.merge(im.mode,(r,newg,newb))#将3个通道合成新的图像
    om.save('C:/Users/86183/Desktop/颜色改变.jpg')#输出图像
    

    <原图:<改变颜色后

    图像的过滤于增强:利用Image类的filter()方法可以使用ImageFilter类,如下:Image.filter(ImageFliter.fuction)

    获取图像的轮廓。原图同上

    from PIL import Image
    from PIL import ImageFilter
    im=Image.open('C:/Users/86183/Desktop/微信图片_20200414134749.jpg')
    om=im.filter(ImageFilter.CONTOUR)
    om.save('C:/Users/86183/Desktop/获取轮廓.jpg')

     <轮廓图

    图像的过滤和增强:

     采用ImageFilter.EMBOSS可以使图像产生浮雕类效果,具体操作如下:

    from PIL import Image
    from PIL import ImageFilter
    im=Image.open('C:/Users/86183/Desktop/微信图片_20200414134749.jpg')
    om=im.filter(ImageFilter.EMBOSS)
    om.save('C:/Users/86183/Desktop/浮雕图.jpg')

     <浮雕

    图像字符画绘制:

    位图图片是由不同颜色像素点组成的规则分布,如果才用字符串代替像素,图像就成为了字符画。

    from PIL import Image
    ascii_char  = list('"$%_&WM#*oahkbdpqwmZO0QLCJUYXzcvunxr
    jft/|()1{}[]?-/+@<>i!;:,^`.')
    def get_char(r, b, g, alpha=256):
        if alpha == 0:
            return ' '
        gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)   
        unit = 256 / len(ascii_char)
        return ascii_char[int(gray//unit)]
    def main():
        im = Image.open('file:///C:/Users/86183/Desktop/微信图片_20200414182738.png')
        WIDTH, HEIGHT = 100,100
        im = im.resize((WIDTH, HEIGHT))
        txt = ""
        for i in range(HEIGHT):
            for j in range(WIDTH):
                txt += get_char(*im.getpixel((j, i))) 
        fo = open("zifuhua.txt","w")
        fo.write(txt)
        fo.close()
    main()
    

      <原图<字符图

    除了以上的例子外,PIL还可以实现制作GIF图片和GIF图片的提取。

    from PIL import Image
    im = Image.open('C:/Users/86183/Desktop/2016120211583958491.gif')
    try:
        im.save('C:/Users/86183/Desktop/tiquzhenshu{:03d}.png'.format(im.tell()))
        while True:
            im.seek(im.tell()+1)
            im.save('C:/Users/86183/Desktop/tiquzhenshu{:02d}.png'.format(im.tell()))
        except:
            print('操作完成')
            
    

      

    <原GIF图                        

  • 相关阅读:
    innerHTML和innerText
    Function 构造器及其对象、方法
    构造函数
    jquery 获取及设置input各种类型的值
    在浏览器中输入URL并回车后都发生了什么?
    :after和:before的作用及使用方法
    使用JS监听键盘按下事件(keydown event)
    Javascript模块化编程(三):require.js的用法
    Javascript模块化编程(二):AMD规范
    Javascript模块化编程(一):模块的写法
  • 原文地址:https://www.cnblogs.com/kwjl/p/12698677.html
Copyright © 2020-2023  润新知