Python_用Pillow操作圖像

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'))
# (255, 0, 0, 255)

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  # 圖片的格式PNG、JPG等
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")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章