PIL(python3.4)修改RGV值

2024-04-24 19:47:52 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个代码,创建一个小的10×10图片,全部为绿色,jpg格式:

import PIL.Image as img
im = img.new('RGB', (10,10), (0,255,0))
print(np.array(im))

[[[  0 255   0]
  [  0 255   0]
  [  0 255   0]
  [  0 255   0]
  [  0 255   0]
  [  0 255   0]
  [  0 255   0]
  [  0 255   0]
  [  0 255   0]
  [  0 255   0]]
...

所以,没关系。但如果文件已保存,然后打开:

im.save(chemin+"essai.jpg")  
it = np.array(img.open(chemin+"essai.jpg"))
print(it)

array([[[  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1],
        [  0, 255,   1]],
...

为什么蓝色部分有1?你知道吗

如果我做一个红色图片[255,0,0],它在保存和打开后给出:[254,0,0],也是一样的。为什么是254?你知道吗

似乎是在保存时,而不是在加载时,因为如果我在photoshop这样的软件中打开保存的文件,颜色已经被修改了。你知道吗

如果有人有答案。(很抱歉我的英语不好)。谢谢您!你知道吗


Tags: 文件代码importimg格式np图片it