PIL简单图像粘贴-图像更改颜色

3

我正在尝试使用以下方式将一张图片粘贴到另一张图片上:

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

这个方法有效,但是粘贴的图片会变成灰色。
之前的图片: enter image description here 之后的图片: enter image description here 有没有简单的方法可以保留原来的颜色?我尝试了阅读其他的问题和文档,但我找不到任何解释如何实现这一点。
非常感谢。

1
尝试将第一行更改为original = Img.open('original.gif').convert('RGB'),以防它是调色板。 - Mark Setchell
非常好,非常感谢,它起作用了。 - blountdj
我会将其添加为答案,这样每个人都可以在不必在评论中搜索的情况下看到它 - 也许您可以接受它。 - Mark Setchell
当然,我会做到。 - blountdj
1个回答

2
我相信所有的GIF图片都是调色板图像 - 也就是说,它们不在每个位置包含RGB三元组,而是包含一个RGB三元组调色板的索引。这样可以节省空间和提高下载速度 - 代价是每个图像只允许256种唯一颜色。
如果您想将GIF(或调色板PNG文件)视为RGB,则需要确保在打开时将其转换为RGB,否则您将使用调色板索引而不是RGB三元组。
尝试将第一行更改为:
original = Img.open('original.gif').convert('RGB')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接