PIL有如下幾個模塊:Image模塊、ImageChops模塊、ImageCrackCode模塊、ImageDraw模塊、ImageEnhance模塊、ImageFile模塊、ImageFileIO模塊、ImageFilter模塊、ImageFont模塊、ImageGrab模塊、ImageOps模塊、ImagePath模塊、ImageSequence模塊、ImageStat模塊、ImageTk模塊、ImageWin模塊、PSDraw模塊
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計制作、成都做網(wǎng)站與策劃設計,武漢網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:武漢等地區(qū)。武漢做網(wǎng)站價格咨詢:028-86922220
啊啊啊啊怎么這么多模塊啊~~~!?。?!
別擔心我為你一一講解
Image模塊提供了一個相同名稱的類,即image類,用于表示PIL圖像。
Image模塊是PIL中最重要的模塊 ,比如創(chuàng)建、打開、顯示、保存圖像等功能,合成、裁剪、濾波等功能,獲取圖像屬性功能,如圖像直方圖、通道數(shù)等。
Image模塊的使用如下:
ImageChops模塊包含一些算術圖形操作,這些操作可用于諸多目的,比如圖像特效,圖像組合,算法繪圖等等,通道操作只用于8位圖像。
ImageChops模塊的使用如下:
由于圖像im_dup是im的復制過來的,所以它們的差為0,圖像im_diff顯示時為黑圖。
ImageCrackCode模塊允許用戶檢測和測量圖像的各種特性。 這個模塊只存在于PIL Plus包中。
因為我目前安裝的PIL中沒有包含這個模塊。所以就不詳細介紹了
ImageDraw模塊為image對象提供了基本的圖形處理功能。 例如,它可以創(chuàng)建新圖像,注釋或潤飾已存在圖像,為web應用實時產(chǎn)生各種圖形。
ImageDraw模塊的使用如下:
在del draw前后顯示出來的圖像im是完全一樣的,都是在原有圖像上畫了兩條對角線。
原諒我的報錯
ImageEnhance模塊包括一些用于圖像增強的類。它們分別為 Color類、Brightness類、Contrast類和Sharpness類。
ImageEnhance模塊的使用如下:
圖像im0的亮度為圖像im的一半。
ImageFile模塊為圖像打開和保存功能提供了相關支持功能。另外,它提供了一個Parser類,這個類可以一塊一塊地對一張圖像進行解碼(例如,網(wǎng)絡聯(lián)接中接收一張圖像)。這個類的接口與標準的sgmllib和xmllib模塊的接口一樣。
ImageFile模塊的使用如下:
因為所打開圖像大小大于1024個byte,所以報錯:圖像不完整。
所以大家想看的可以自行去找一個小一點的圖看一下
ImageFileIO模塊用于從一個socket或者其他流設備中讀取一張圖像。 不贊成使用這個模塊。 在新的code中將使用ImageFile模塊的Parser類來代替它。
ImageFilter模塊包括各種濾波器的預定義集合,與Image類的filter方法一起使用。該模塊包含這些圖像增強的濾器:BLUR,CONTOUR,DETAIL,EDGE_ENHANCE,EDGE_ENHANCE_MORE,EMBOSS,F(xiàn)IND_EDGES,SMOOTH,SMOOTH_MORE和SHARPEN。
ImageFilter模塊的使用如下:
ImageFont模塊定義了一個同名的類,即ImageFont類。這個類的實例中存儲著bitmap字體,需要與ImageDraw類的text方法一起使用。
PIL使用自己的字體文件格式存儲bitmap字體。用戶可以使用pilfont工具包將BDF和PCF字體描述器(Xwindow字體格式)轉換為這種格式。
PIL Plus包中才會支持矢量字體。
ImageGrab模塊用于將屏幕上的內容拷貝到一個PIL圖像內存中。 當前的版本只在windows操作系統(tǒng)上可以工作。
ImageGrab模塊的使用如下:
圖像im顯示出筆記本當前的窗口內容,就是類似于截圖的工具
ImageOps模塊包括一些“ready-made”圖像處理操作。 它可以完成直方圖均衡、裁剪、量化、鏡像等操作 。大多數(shù)操作只工作在L和RGB圖像上。
ImageOps模塊的使用如下:
圖像im_flip為圖像im垂直方向的鏡像。
ImagePath模塊用于存儲和操作二維向量數(shù)據(jù)。Path對象將被傳遞到ImageDraw模塊的方法中。
ImagePath模塊的使用如下:
ImageSequence模塊包括一個wrapper類,它為圖像序列中每一幀提供了迭代器。
ImageSequence模塊的使用如下:
后面兩次show()函數(shù)調用,分別顯示第1張和第11張圖像。
ImageStat模塊計算一張圖像或者一張圖像的一個區(qū)域的全局統(tǒng)計值。
ImageStat模塊的使用如下:
ImageTk模塊用于創(chuàng)建和修改BitmapImage和PhotoImage對象中的Tkinter。
ImageTk模塊的使用如下:
這個是我一直不太懂的有沒有大佬能幫我解決一下在線等~急!
PSDraw模塊為Postscript打印機提供基本的打印支持。用戶可以通過這個模塊打印字體,圖形和圖像。
PIL中所涉及的基本概念有如下幾個: 通道(bands)、模式(mode)、尺寸(size)、坐標系統(tǒng)(coordinate system)、調色板(palette)、信息(info)和濾波器(filters)。
每張圖片都是由一個或者多個數(shù)據(jù)通道構成。PIL允許在單張圖片中合成相同維數(shù)和深度的多個通道。
以RGB圖像為例,每張圖片都是由三個數(shù)據(jù)通道構成,分別為R、G和B通道。而對于灰度圖像,則只有一個通道。
對于一張圖片的通道數(shù)量和名稱,可以通過getbands()方法來獲取。getbands()方法是Image模塊的方法,它會返回一個字符串元組(tuple)。該元組將包括每一個通道的名稱。
Python的元組與列表類似,不同之處在于元組的元素不能修改,元組使用小括號,列表使用方括號,元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可。
getbands()方法的使用如下:
圖像的模式定義了圖像的類型和像素的位寬。當前支持如下模式:
1:1位像素,表示黑和白,但是存儲的時候每個像素存儲為8bit。
L:8位像素,表示黑和白。
P:8位像素,使用調色板映射到其他模式。
I:32位整型像素。
F:32位浮點型像素。
RGB:3x8位像素,為真彩色。
RGBA:4x8位像素,有透明通道的真彩色。
CMYK:4x8位像素,顏色分離。
YCbCr:3x8位像素,彩色視頻格式。
PIL也支持一些特殊的模式,包括RGBX(有padding的真彩色)和RGBa(有自左乘alpha的真彩色)。
可以通過mode屬性讀取圖像的模式。其返回值是包括上述模式的字符串。
mode 屬性 的使用如下:
通過size屬性可以獲取圖片的尺寸。這是一個二元組,包含水平和垂直方向上的像素數(shù)。
mode屬性的使用如下:
PIL使用笛卡爾像素坐標系統(tǒng),坐標(0,0)位于左上角。注意:坐標值表示像素的角;位于坐標(0,0)處的像素的中心實際上位于(0.5,0.5)。
坐標經(jīng)常用于二元組(x,y)。長方形則表示為四元組,前面是左上角坐標。例如:一個覆蓋800x600的像素圖像的長方形表示為(0,0,800,600)。
調色板模式 ("P")使用一個顏色調色板為每個像素定義具體的顏色值
使用info屬性可以為一張圖片添加一些輔助信息。這個是字典對象。加載和保存圖像文件時,多少信息需要處理取決于文件格式。
info屬性的使用如下:
對于將多個輸入像素映射為一個輸出像素的幾何操作,PIL提供了4個不同的采樣濾波器:
NEAREST:最近濾波。 從輸入圖像中選取最近的像素作為輸出像素。它忽略了所有其他的像素。
BILINEAR:雙線性濾波。 在輸入圖像的2x2矩陣上進行線性插值。注意:PIL的當前版本,做下采樣時該濾波器使用了固定輸入模板。
BICUBIC:雙立方濾波。 在輸入圖像的4x4矩陣上進行立方插值。注意:PIL的當前版本,做下采樣時該濾波器使用了固定輸入模板。
ANTIALIAS:平滑濾波。 這是PIL 1.1.3版本中新的濾波器。對所有可以影響輸出像素的輸入像素進行高質量的重采樣濾波,以計算輸出像素值。在當前的PIL版本中,這個濾波器只用于改變尺寸和縮略圖方法。
注意:在當前的PIL版本中,ANTIALIAS濾波器是下采樣 (例如,將一個大的圖像轉換為小圖) 時唯一正確的濾波器。 BILIEAR和BICUBIC濾波器使用固定的輸入模板 ,用于固定比例的幾何變換和上采樣是最好的。Image模塊中的方法resize()和thumbnail()用到了濾波器。
resize()方法的定義為:resize(size, filter=None)= image
resize()方法的使用如下:
對參數(shù)filter不賦值的話,resize()方法默認使用NEAREST濾波器。如果要使用其他濾波器可以通過下面的方法來實現(xiàn):
thumbnail ()方法的定義為:im.thumbnail(size, filter=None)
thumbnail ()方法的使用如下:
這里需要說明的是,方法thumbnail()需要保持寬高比,對于size=(200,200)的輸入?yún)?shù),其最終的縮略圖尺寸為(182, 200)。
對參數(shù)filter不賦值的話,方法thumbnail()默認使用NEAREST濾波器。如果要使用其他濾波器可以通過下面的方法來實現(xiàn):
有
當然有,這就是Python函數(shù)圖像工具(EXE)。 本程序運用Python中最令人喜愛的數(shù)據(jù)處理工具numpy和超強的圖像庫matplotlib,實現(xiàn)13種不同類別函數(shù)的分類圖像整理,展示圖像均可以保存為圖片的形式,具備拖動、放大等功能
簡介:turtle是一個簡單的繪圖工具。它提供了一個海龜,你可以把它理解為一個機器人,只聽得懂有限的指令。
1.在文件頭寫上如下行,這能讓我們在語句中插入中文
#-*- coding: utf-8 -*-
2.用import turtle導入turtle庫
3.繪圖窗口的原點(0,0)在正中間。默認情況下,海龜向正右方移動。
4.操縱海龜繪圖有著許多的命令,這些命令可以劃分為兩種:一種為運動命令,一種為畫筆控制命令
(1)運動命令:
forward(d)
向前移動距離d代表距離
backward(d)
向后移動距離d代表距離
right(degree)
向右轉動多少度
left(degree)
向左轉動多少度
goto(x,y)
將畫筆移動到坐標為(x,y)的位置
stamp()
繪制當前圖形
speed(speed)
畫筆繪制的速度范圍[0,10]整數(shù)
(2)畫筆控制命令:
down()
畫筆落下,移動時繪制圖形
up()
畫筆抬起,移動時不繪制圖形
setheading(degree)
海龜朝向,degree代表角度
reset()
恢復所有設置
pensize(width)
畫筆的寬度
pencolor(colorstring)
畫筆的顏色
fillcolor(colorstring)
繪制圖形的填充顏色
fill(Ture)
fill(False)
circle(radius, extent)
繪制一個圓形,其中radius為半徑,extent為度數(shù),例如若extent為180,則畫一個半圓;如要畫一個圓形,可不必寫第二個參數(shù)
5.幾個例子
1)畫一個邊長為60的三角形
#-*- coding: utf-8 -*-
importturtle
a=60
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)
2)畫一個邊長為60的正方形,并填充為紅色,邊框為藍色
#-*- coding: utf-8 -*-
importturtle
turtle.reset()
a= 60
turtle.fillcolor("red")
turtle.pencolor("blue")
turtle.pensize(10)
turtle.fill(True)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.fill(False)
6.練習:
1)畫一個五邊形
2)畫一個六邊形
3)任意輸入一個正整數(shù)m(=3),畫一個多邊形(m條邊)
4)畫一個五角星,如下所示,注意填充為紅色
5)畫一個中國象棋棋盤,如下圖所示,其中漢字不必顯示出來:
6)繪制奧運五環(huán)圖,其中五種顏色分別為藍色、黑色、紅色、黃色和綠色。注意根據(jù)實際效果調整圓形的大小和位置。