我想将 tiff RGB 图像导出为 gif。以下代码有效,但图像质量非常差(引入了很多噪音)。
import numpy as np
from PIL import Image
list_files = ["foo.tif", "bar.tif"]
# Create the frames
frames = []
for i in list_files:
tif = tifffile.TiffFile(i)
tif = tif.asarray()
tif = tif * 255 # Tiffs are actually floats, need to be converted to ints.
tif = tif[::3, ::3, :] # Downscale size
tif = tif.astype(np.uint8)
display(tif.shape)
frames.append(Image.fromarray(tif))
# Save into a GIF file that loops forever
frames[0].save('png_to_gif.gif', format='GIF',
append_images=frames[1:],
save_all=True,
duration=300, loop=0)
如何以更高的质量保存 gif 而不会出现颜色失真?
由于图片是浮动的 <0, 1>,它们无法在此处正确渲染以进行预览(但还可以)。
类似的问题之前已在这里解决:如果使用 Python Pillow 制作 gif,颜色将会消失 诀窍是在转换为 gif 之前从图像中提取调色板。在我的例子中,所有图像必须首先合并成一个图像,以便所有颜色值都将出现在随后提取的调色板中。