python:PIL庫學習筆記


PIL庫的概述:

PIL庫可以完成圖像歸檔和圖像處理兩方面功能需求:
  圖像歸檔:對圖像進行批處理、生成圖像預覽、圖像格式轉換等;
  圖像處理:圖像基本處理、像素處理、顏色處理等。  

PIL庫Image類:

 

from PIL import Image
m = Image.open("D:\\picture.jpg")   #讀取照片文件

 

生成縮略圖:

im.thumbnail((128, 128))    #(128,128)是縮略圖的尺寸。
im.save("birdnestTN","JPEG")
im.show()   # 顯示縮略圖 (縮略圖不能直接雙擊打開,而可以使用PIL.image的open讀取,然后使用show()方法進行顯示)

旋轉和縮放:

im.rotate(45)    #Image.rotate(angle)    按angle角度旋轉圖像
im.resize(128)   #Image.resize(size)    按size大小調整圖像
im.show()

 

圖像顏色交換

r, g, b = im.split()   #提取RGB圖像的每個顏色通道
om = Image.merge("RGB", (b, g, r))   #將各獨立通道再合成一幅新的圖像
om.save('pictureBGR.jpg')

圖像的過濾和增強

 

圖像輪廓獲取:

from PIL import Image
from PIL import ImageFilter
im = Image.open("picture.jpg")
om = im.filter(ImageFilter.CONTOUR)
om.save('pictureContour.jpg')

                                       

調整色彩度、亮度、對比度、銳化

 

 

 浮雕化

from PIL import Image
from PIL import ImageFilter
im = Image.open("picture.jpg")
om = im.filter(ImageFilter.EMBOSS)
om.save('picture1.jpg')

提取動圖每一幀

from PIL import Image
im = Image.open('動圖.gif')      # 讀入一個GIF文件
try:
    im.save('picframe{:02d}.png'.format(im.tell()))
    while True:
        im.seek(im.tell()+1)
        im.save('picframe{:02d}.png'.format(im.tell()))
except:
    print("處理結束")

 中文字符畫

from PIL import Image
ascii_char  = list('中國真是個偉大的國家')
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('pic.PNG')
    WIDTH, HEIGHT = 100, 60
    im = im.resize((WIDTH, HEIGHT))
    txt = ""
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j, i)))
        txt += '\n'
    fo = open("pic_char.txt","w")
    fo.write(txt)
    fo.close()
main()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM