python外庫--pillow

1. 作用

圖像處理庫

2. 操作

from PIL import Image # 引入Image類

# 創(chuàng)建一個(gè)新的圖片
def img_create(outfile, mode='RGB', size=(100, 100), color='red'):
    new_img= Image.new(mode, size, color) # 創(chuàng)建一個(gè)新的Image實(shí)例
    new_img.save(outfile)

# 展示圖片
def img_open(infile):
    with Image.open(infile) as im: # 讀取圖片柑贞,讀取不成功拋出IOError
        print(im.format, im.size, im.mode) # 圖片格式方椎, 圖片像素, 圖片模式(一般RGB)
        im.show() # debian下不管用凌外,需要安裝xv

# 讀寫圖片
def img_save(infile, outfile):
    try:
        Image.open(infile).save(outfile) # 打開圖片并保存為另外的格式
        # open時(shí)辩尊,pillow獲取文件信息如format、mode康辑,余下數(shù)據(jù)需要時(shí)出處理
    except IOError:
        print('connot convert {}'.format(infile))

# 轉(zhuǎn)換模式 mode
def img_convert(infile, outfile, mode):
    with Image.open(infile) as im:
        im_copy = im.copy()
        im_copy.convert(mode).save(outfile)
        # mode參數(shù): 1\L\P\RGB\RGBA\CMYK\YCbCr\LAB\HSV\I\F

# 縮略圖
def img_thumbnail(infile, outfile, size=(100, 200)):
    with Image.open(infile) as im:
        im.thumbnail(size)
        im.save(outfile)

# 復(fù)制圖片
def img_copy(infile, outfile):
    with Image.open(infile) as im:
        im.copy().save(outfile)

# 剪裁圖片
def img_crop(infile, outfile, size=(100, 100, 400, 400)):
    with Image.open(infile) as im:
        im.crop(size).save(outfile) # size=(左摄欲, 頂, 右疮薇, 底)胸墙,左上角為坐標(biāo)原點(diǎn),
        # (100, 100, 400, 400) 表示300*300的像素按咒,就是右-左迟隅, 底-頂

# 粘貼圖片
def img_paste(infile, outfile, size=(200, 200, 400, 400)):
    with Image.open(infile) as im:
        im_crop = im.crop(size)
        crop_width, crop_height = im_crop.size
        width, height = im.size
        im_copy = im.copy()
        
        for left in range(0, width, crop_width):
            for top in range(0, height, crop_height):
                im_copy.paste(im_crop, (left, top))
        im_copy.save(outfile)

# 調(diào)整圖片大小
def img_resize(infile, outfile, size=(200, 400), expand=True):
    with Image.open(infile) as im:
        im.resize(size, expand).save(outfile) # 參數(shù)expand=True適應(yīng)原圖片

# 翻轉(zhuǎn)圖片
def img_transpose(infile, outfile, flip_point): # flip_point為翻轉(zhuǎn)參數(shù)
    with Image.open(infile) as im:
        im.transpose(flip_point).save(outfile)
        # 參數(shù)flip_point : 
        # Image.ROTATE_90/180/270 類似rotate()沒有性能差別。
        # Image.FLIP_LEFT_RIGHT
        # Image.FLIP_TOP_BUTTOM


# 旋轉(zhuǎn)圖片
def img_rotate(infile, outfile, size=90):
    with Image.open(infile) as im:
        im.rotate(size).save(outfile)

# 移動(dòng)圖片
def img_roll(infile, outfile, delta):
    with Image.open(infile) as im:
        image = im.copy() # 復(fù)制圖片
        x, y = image.size

        delta = delta % x # 防止delta比x大
        if delta == 0: 
            image.save(outfile)
            return

        part1 = image.crop((0, 0, delta, y))
        part2 = image.crop((delta, 0, x, y))
        image.paste(part2, (0, 0, x - delta, y))
        image.paste(part1, (x - delta, 0, x, y))
        image.save(outfile)

from PIL import ImageFilter
# 圖片過濾
def img_filter(infile, outfile, filter_point): # filter_point模糊模式
    with Image.open(infile) as im:
        im.filter(filter_point).save(outfile)
        # 參數(shù)filter_point參照pillow文檔ImageFileter

def img_point(infile, outfile):
    with Image.open(infile) as im:
        im_point = im.point(lambda i: i * 2) # 高級(jí)函數(shù),日智袭,類似Map
        im_point.save(outfile)

###要進(jìn)行圖案奔缠、文字的繪制,可使用ImageDraw###

if __name__ == '__main__':
    # img_create('timg_new.jpeg', mode='RGB', size=(100, 100), color='blue')
    # img_open('timg_new.jpeg')
    # img_save('timg.jpeg', 'timg_conv.png')
    # img_convert('timg.jpeg', 'timg_convert.jpeg', 'L')
    # img_thumbnail('timg.jpeg', 'timg_thum.jpeg', size=(100, 200))
    # img_copy('timg.jpeg', 'timg_copy.jpeg')
    # img_crop('timg.jpeg', 'timg_crop.jpeg', size=(100, 100, 400, 400))
    # img_paste('timg.jpeg', 'timg_past.jpeg', size=(200, 200, 400, 400))
    # img_resize('timg.jpeg','timg_resi.jpeg', size=(200, 400))
    # img_transpose('timg.jpeg', 'timg_righ.jpeg', Image.FLIP_LEFT_RIGHT)
    # img_transpose('timg.jpeg', 'timg_bott.jpeg', Image.FLIP_TOP_BOTTOM) 
    # img_rotate('timg.jpeg', 'timg_rota.jpeg', size=90)
    # img_roll('timg.jpeg', 'timg_roll.jpeg', 500)
    # img_filter('timg.jpeg', 'timg_filt.jpeg', ImageFilter.EMBOSS)
    img_point('timg.jpeg', 'timg_poin.jpeg')


3. 文檔

pillow文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吼野,一起剝皮案震驚了整個(gè)濱河市校哎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞳步,老刑警劉巖闷哆,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異单起,居然都是意外死亡抱怔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門嘀倒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屈留,“玉大人,你說我怎么就攤上這事括儒∪粕颍” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵帮寻,是天一觀的道長(zhǎng)乍狐。 經(jīng)常有香客問我,道長(zhǎng)固逗,這世上最難降的妖魔是什么浅蚪? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮烫罩,結(jié)果婚禮上惜傲,老公的妹妹穿的比我還像新娘。我一直安慰自己贝攒,他們只是感情好盗誊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隘弊,像睡著了一般哈踱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音白指,去河邊找鬼。 笑死出嘹,一個(gè)胖子當(dāng)著我的面吹牛啥刻,可吹牛的內(nèi)容都是我干的刺下。 我是一名探鬼主播共郭,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼树埠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼糠馆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起弥奸,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤榨惠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后盛霎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耽装,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年愤炸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掉奄。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡规个,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姓建,到底是詐尸還是另有隱情诞仓,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布速兔,位于F島的核電站墅拭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涣狗。R本人自食惡果不足惜谍婉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镀钓。 院中可真熱鬧穗熬,春花似錦、人聲如沸丁溅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窟赏。三九已至妓柜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饰序,已是汗流浹背领虹。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留求豫,地道東北人塌衰。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓诉稍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親最疆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子杯巨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容