首页 > 解决方案 > PIL简单的图像粘贴 - 图像改变颜色

问题描述

我正在尝试将图像粘贴到另一个图像上,使用:

original = Img.open('original.gif')
tile_img = Img.open('tile_image.jpg')
area = 0, 0, 300, 300
original.paste(tile_img, area)
new_cropped.show()

除了粘贴的图像将颜色更改为灰色外,此方法有效。

之前的图片:

在此处输入图像描述

之后的图像:

在此处输入图像描述

有没有一种简单的方法来保留相同的粘贴图像颜色?我已尝试阅读其他问题和文档,但找不到任何有关如何执行此操作的解释。

非常感谢

标签: python-imaging-library

解决方案


我相信所有的 GIF 图像都是调色板的——也就是说,它们不是在每个位置包含一个 RGB 三元组,而是包含一个索引到一个 RGB 三元组的调色板中。这节省了空间并提高了下载速度 - 代价是每张图像只允许 256 种独特的颜色。

如果您想将 GIF(或调色板的 PNG 文件)视为 RGB,您需要确保在打开时将其转换为 RGB,否则您将使用调色板索引而不是 RGB 三元组。

尝试将第一行更改为:

original = Img.open('original.gif').convert('RGB')

推荐阅读