【发布时间】:2021-01-17 19:54:07
【问题描述】:
每当我将 PNG 图像转换为 np.array 然后将其转换回 PNG 时,我都会丢失图像的所有颜色。当我从 np.array 转换回来时,我希望能够保留原始 PNG 的颜色。
原始PNG图像
我的代码:
from PIL import Image
im = Image.open('2007_000129.png')
im = np.array(im)
#augmenting image
im[0,0] = 1
im = Image.fromarray(im, mode = 'P')
输出黑白版本的图像
我也尝试使用 getpalette 和 putpalette 但这不起作用,它只会返回一个 NonType 对象。
im = Image.open('2007_000129.png')
pat = im.getpalette()
im = np.array(im)
im[0,0] = 1
im = Image.fromarray(im, mode = 'P')
im= im.putpalette(pat)
【问题讨论】:
-
错误是这一行
im= im.putpalette(pat):putpalette工作就地,所以不要把这个操作的结果写回im。只是im.putpalette(pat)。使用该修复程序,第二个代码对我来说可以正常工作。 -
如果您仍然遇到问题,请告诉我
-
@HansHirse 啊,相当简单的修复。如果您希望我检查它,请随时发布您的解决方案。
标签: python numpy python-imaging-library png color-palette