我正在使用PyPNG包读取一个简单的png文件。
返回的像素数据是itertools.imap对象。
如何读取这些数据。
import png, array
reader = png.Reader(filename='image.png')
w, h, pixels, metadata = reader.read()
(877, 615, <itertools.imap object at 0x2a956a5b50>, {'bitdepth': 8, 'interlace': 0, 'planes': 3, 'greyscale': False, 'alpha': False, 'gamma': 0.45455, 'size': (877, 615)})
pixels是itertools.imap对象,我假设它包含像素信息。
谢谢
当做
最佳答案
itertools.imap
返回iterable。您应该能够像遍历任何其他列表一样遍历它。
当然,一个关键的区别是,因为它是一个迭代器,所以只能对它进行一次迭代。你也不能索引它
编辑(应操作人员要求):
如何遍历列表
假设您有一个名为L
的列表,并且L
如下所示:
L = ['a', 'b', 'c', 'd']
那么,
L
处的元素及其各自的指数为:+-------+---------+
| index | element |
+-------+---------+
| 0 | 'a' |
+-------+---------+
| 1 | 'b' |
+-------+---------+
| 2 | 'c' |
+-------+---------+
| 3 | 'd' |
+-------+---------+
注意,因为python有基于零的索引,所以没有索引4,即使
L
中有四个项。现在,如果您想要
L
中索引3处的项,您可以执行L[3]
。如果您想要在L
中索引2处的项,则需要执行L[s]
等操作。要在
L
上迭代(假设要打印出值):for elem in L:
print elem
另一种方式:
for i in range(len(L)): # lookup range() and len()
print L[i]
希望这有帮助
关于python - 如何从PyPNG的阅读器读取itertools.imap对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13485243/