首页 > 解决方案 > 为什么 PIL 中的“ValueError:图像是只读的”

问题描述

我想更改灰度 pgm 图像中的像素。当我编译以下代码时,它显示图像是只读的。我无法更改图像的像素。我该如何解决这个错误?
这是我的代码:

from PIL import Image
img = Image.open('Image.pgm')
pixval= img.load()
columnsize, rowsize = img.size 

img1 = Image.open('Image.pgm')
pix1 = img1.load()
for i in range(rowsize):
    for j in range(columnsize):
        pix1[j,i]=250
img1.save("share1.pgm")

标签: python-2.7ubuntu-16.04python-imaging-librarypixels

解决方案


要更改像素,请使用以下 API

image.putpixel((j, i), 250)

特别是,您的代码变为

from PIL import Image
img = Image.open('Image.pgm')
pixval = img.load()
columnsize, rowsize = img.size 
for i in range(rowsize):
    for j in range(columnsize):
        image.putpixel((j, i), 250)
img1.save("share1.pgm")

推荐阅读