1,操作像素putpixel
座標原點是左上
width = 100
height = 200
xpath = "test.png"
im = Image.new("RGB", (width, height)) # 創建圖片
# 通過每個rgb點生成圖片
for i in range(width):
for j in range(height):
r = 0
if i < 10 and j < 20:
r = 255
g = 0
b = 0
im.putpixel((i, j), (r, g, b))
im.save(xpath)
2,numpy數據結構存儲
左上角的座標原點,第一維數組爲height,第二維數組爲width
imt = Image.new("RGB", (width, height))
nptest = np.array(imt)
for i in range(width):
for j in range(height):
if i < 10 and j > 10:
nptest[j][i][2] = 255
imtestg = Image.frombytes("RGB", (int(width), int(height)), nptest.tobytes())
# imtestg = imtestg.transpose(Image.FLIP_TOP_BOTTOM)
# 上下翻轉
imtestg.save(xpath)
3,image 轉 numpy array
image轉arrag,數組轉入後,img.shape返回的是,高,寬。
處理的時候,數組維度依然是高,寬。
im = Image.open(xpath,"r")
img = np.array(im)
# 200,100
# 數組1維 2維
h,w,d = img.shape
xpath = "test1.png"
im = Image.new("RGB", (w, h)) # 創建圖片
# 通過每個rgb點生成圖片
for i in range(w):
for j in range(h):
r = img[j][i][0]
g = img[j][i][1]
b = img[j][i][2]
im.putpixel((i, j), (r, g, b))
im.save(xpath)