Python - 更改像素值

0 投票
2 回答
2126 浏览
提问于 2025-04-18 13:10

我用这段代码来改变图片的像素值,

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')

撰写回答