1、顏色和RGBA值
- RGBA值是一組數字如(128, 0, 128, 255),指定顏色中的紅、綠、藍和alpha(透明度)的值。值的範圍是0~255。這些值是從0到255的整數。
- 這些RGBA值分配給單個像素,像素是計算機屏幕上能顯示一種顏色的最小點;
- 像素的RGB設置準確的告訴他應該顯示哪種顏色
名稱 |
RGBA值 |
White |
(255,255,255,255) |
Green |
(0,255,0,255) |
Red |
(255,0,0,255) |
Blue |
(0,0,255,255) |
Yellow |
(255,255,0,255) |
Purple |
(128,0,128,255) |
Black |
(0,0,0,255) |
Gray |
(128,128,128,255) |
(1) ImageColor.getcolor獲取某種顏色的RGBA值
from PIL import ImageColor
print(ImageColor.getcolor('red', 'RGBA'))
2、座標和Box元組
- 原點是位於圖像左上角的像素,用符號(0,0)表示,第一個0表示x座標,它以原點處爲0,從左至右增加。第二個0表示y座標,它以原點處爲0,從上至下增加;
- Pillow函數和方法需要一個矩形元組參數,這意味四個整座標的元組,表示圖像中的一個矩形區域,四個整數順序是:最左側x座標,最頂側y座標,最右側x座標,最底側y座標;如(3,1,9, 6)
3、用Pillow操作圖像
(1).open加載圖像、.size獲取寬高、.filename名稱、.save保存圖片等
from PIL import Image
img = Image.open("cat.png")
width, height = img.size
name = img.filename
form = img.format
img.save("new_cat.jpg")
(2).new創建一個100像素寬、200像素高,帶有紫色背景的圖片
from PIL import Image
im = Image.new('RGBA', (100, 200), "purple")
im.save("purpleImage.png")
(3)getpixel()方法讀取圖片某一點的RGB值,putpixel()更改單個像素
from PIL import Image
from PIL import ImageColor
img = Image.open("purpleImage.png")
x, y = 12, 66
r, g, b, alpha = img.getpixel((x, y))
img.putpixel((x, y), (210, 210, 210))
img.putpixel((x, y), ImageColor.getcolor("Red", "RGBA"))
img.save("putpixel.png")
(4)crop()裁剪一個矩形區域的圖像,並刪除矩形之外的一切
from PIL import Image
im = Image.open("purpleImage.png")
crop = im.crop((25, 30, 45, 50))
crop.save("new.png")
(5)copy()方法複製圖片
from PIL import Image
im = Image.open("purpleImage.png")
imcopy = im.copy()
imcopy.save("imcopy.png")
(6)paste()將一個圖像粘貼到另一個圖像上
from PIL import Image
im = Image.open("purpleImage.png")
crop = Image.new('RGBA', (23, 23), "green")
w, h = im.size
c_w, c_h = crop.size
im2 = im.copy()
for left in range(0, w, c_w):
for top in range(0, h, c_h):
print(left, top)
im2.paste(crop, (left, top))
im2.save("paste.png")
(7)resize()方法調整圖像大小
from PIL import Image
im = Image.open("purpleImage.png")
resize_img = im.resize(5, 8)
resize_img.save("resize_img.png")
(8)rotate()旋轉和翻轉圖像,transpose()鏡像翻轉
from PIL import Image
im = Image.open("purpleImage.png")
im.rotate(30, expand=True).save("rotate.png")
im.transpose(Image.FLIP_LEFT_RIGHT).save("right.png")
im.transpose(Image.FLIP_TOP_BOTTOM).save("Top.png")