Python模組:PIL

來源:互聯網
上載者:User

標籤:字母   oss   矩形   座標系   dom   random   rndc   一半   .com   

PIL:是Python Image Library的縮寫,影像處理的模組。Image,ImageFont,ImageDraw,ImageFilter

 

Image模組:

常用方法:

open()  #開啟圖片new(mode,size,color)   #建立新圖片save("test.gif","GIF")   #儲存(新圖片路徑和名稱,儲存格式)size()   #擷取圖片大小thumbnail(weight,high)   #縮放圖片大小(寬,高)show()    #顯示圖片blend(img1,img2,alpha)   #兩張圖片相加,alpha表示img1和img2的比例參數。crop()   #提取某個矩陣大小的映像。它接收一個四元素的元組作為參數,各元素為(left, upper, right, lower),座標系統的原點(0, 0)是左上方。rotate(45)    #逆時針旋轉45度transpose()    #旋轉映像    transpose(Image.FLIP_LEFT_RIGHT)       #左右對換。    transpose(Image.FLIP_TOP_BOTTOM)       #上下對換。    transpose(Image.ROTATE_90)             #旋轉 90 度角。    transpose(Image.ROTATE_180)            #旋轉 180 度角。    transpose(Image.ROTATE_270)            #旋轉 270 度角。paste(im,box)#粘貼box大小的im到原先的圖片對象中。convert()    #用來將映像轉換為不同色彩模式。filters()     #濾鏡    BLUR   #虛化    EMBOSSresize((128,128))     #resize成128*128像素大小convert("RGBA")    #圖形類型轉換getpixel((4,4))   #擷取某個像素位置的值putpixel((4,4),(255,0,0))    #寫入某個像素位置的值

 

執行個體:

import Image,ImageFilterim = Image.open("E:\\QQ2.jpg")   #開啟圖片w,h = im.size   #擷取圖片的像素,其值為象素意義上的寬和高print(im.format)   #擷取圖片格式print(im.size)    #擷取圖片像素im.thumbnail((w//2,h//2))   #縮放圖片大小為原來的一半im.save("E:\\QQ_backup.jpg",‘jpeg‘)    #儲存圖片,以及儲存格式為jpeg#im.show()    #顯示圖片print(im.mode)    #顯示模式。 RGB(true color image),此外還有,L(luminance),CMTK(pre-press image)。box = (100,100,200,200)s = im.crop(box)   #映像中提取出某個矩形大小的映像。它接收一個四元素的元組作為參數,各元素為(left, upper, right, lower),座標系統的原點(0, 0)是左上方。#s.show()#s = s.transpose(Image.ROTATE_180)   #旋轉180°#im.paste(s,box)   #粘貼#im.show()im = Image.open("E:\\QQ2.jpg")im2 = im.filter(ImageFilter.EMBOSS)im2.save("E:\\QQ_2.jpg",‘jpeg‘)#im2.show()newImg = Image.new("RGBA",(640,480),(0,255,0))  #建立一張大小為640*480顏色為綠色的圖片newImg.save("E:\\newImg.png","PNG")

輸出結果為:

JPEG(640, 640)RGB

 

ImageFont模組:

常用方法:

 

ImageDraw模組:

 

 

 

執行個體:產生驗證碼

#!/usr/bin/env python# -*- coding:utf-8 -*-import Image, ImageDraw, ImageFont, ImageFilterimport random# 隨機字母:def rndChar():    return chr(random.randint(65, 90))# 隨機顏色1:def rndColor():    return (random.randint(64, 255), random.randint(64, 255),random.randint(64, 255))# 隨機顏色2:def rndColor2():    return (random.randint(32, 127), random.randint(32, 127),random.randint(32, 127))# 240 x 60:width = 60 * 4height = 60image = Image.new(‘RGB‘, (width, height), (255, 255, 255))# 建立Font對象:font = ImageFont.truetype("C:\\Windows\\Fonts\\Arial.ttf", 36)  #注意系統字型的路徑# 建立Draw對象:draw = ImageDraw.Draw(image)# 填充每個像素:for x in range(width):    for y in range(height):        draw.point((x, y), fill=rndColor())# 輸出文字:for t in range(4):    draw.text((60 * t + 10, 10), rndChar(), font=font,fill=rndColor2())# 模糊:image = image.filter(ImageFilter.BLUR)im = image.save(‘code.jpg‘, ‘jpeg‘)m = Image.open(‘code.jpg‘)m.show()

輸出結果為:

 

Python模組:PIL

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.