Python - 更改像素值
我用这段代码来改变图片的像素值,
im=Image.open("image.jpg")
pix=im.load()
pix[50,50]=(70,70,70)
这段代码在我这里运行得很好。不过,当我用PNG格式的图片时,一切都正常,修改的内容也能保存到图片里。但当我用JPG格式的图片时,修改的内容却没有保存下来。是不是代码里缺少了什么?我需要保存这些修改吗?该怎么做呢?
2 个回答
0
用之前的文件名保存图片。 这个方法对我来说很好用。
im=Image.open("image.jpg")
pix=im.load()
pix[50,50]=(70,70,70)
img.save("image.jpg")
0
试试这个:
im.putpixel((50,50), (70, 70, 70))
或者你也可以这样做:
import numpy as np
from PIL import Image
# pix has 4 channels for png and 3 for jpg
pix = np.array(im)
pix[50, 50, 0] = 70 # 0 accesses the first channel
pix[50, 50, 1] = 70 # 1 accesses the second channel
pix[50, 50, 2] = 70 # 2 accesses the third channel
Image.fromarray(pix).save('new_img.jpg')