使用PyPNG进行迭代写入

1 投票
1 回答
508 浏览
提问于 2025-04-29 03:37

我在想有没有办法用PyPNG逐行或者分块地写入png文件,而不需要一次性把所有数据都给png.Writer()。我查了文档,发现所有的写入方法都要求一次性提供整个PNG的所有行,这样会占用太多内存。

提前谢谢你们!

暂无标签

1 个回答

1

如果你提供一个迭代器,PyPNG 就会使用它。下面是一个完整的例子:

#!/usr/bin/env python

import random

import png

def iter_rows():
    H = 4096
    for i in xrange(H):
        yield [random.randrange(i+1) for _ in range(4096)]


img = png.from_array(iter_rows(), mode="L;12",
                     info=dict(size=(4096,4096)))
img.save("big.png")

撰写回答