18
我需要python來改變圖片上一個單獨像素的顏色,我該如何去做?是否可以改變Python中單個像素的顏色?
我需要python來改變圖片上一個單獨像素的顏色,我該如何去做?是否可以改變Python中單個像素的顏色?
要以Gabi Purcaru的link中給出的示例爲基礎,請從PIL docs拼湊一些東西。
最簡單的方法來使用PIL將可靠地修改單個像素:
x, y = 10, 25
shade = 20
from PIL import Image
im = Image.open("foo.png")
pix = im.load()
if im.mode == '1':
value = int(shade >= 127) # Black-and-white (1-bit)
elif im.mode == 'L':
value = shade # Grayscale (Luminosity)
elif im.mode == 'RGB':
value = (shade, shade, shade)
elif im.mode == 'RGBA':
value = (shade, shade, shade, 255)
elif im.mode == 'P':
raise NotImplementedError("TODO: Look up nearest color in palette")
else:
raise ValueError("Unexpected mode for PNG image: %s" % im.mode)
pix[x, y] = value
im.save("foo_new.png")
這將在PIL 1.1.6和後續工作。如果您不幸支持舊版本,則可能會犧牲性能,並用im.putpixel((x, y), value)
替換pix[x, y] = value
。
+1對於'NotImplementedError' – heltonbiker 2011-09-28 16:19:44
使用PIL庫 – akonsu 2010-08-29 20:19:24
@akonsu:通過他的標籤判斷他已經發現該庫... – 2010-08-29 20:20:39
什麼文件格式?只是位圖數據? – Nate 2010-08-29 20:20:54