2

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

ピクセルは、ピクセル情報を含むと仮定するこの itertools.imap オブジェクトです。

ありがとう

よろしく

4

2 に答える 2

4

itertools.imapイテラブルを返します。他のリストを反復するのと同じように、それを反復できるはずです。

もちろん、重要な違いの 1 つは、これは反復子であるため、1 回しか反復できないことです。また、インデックスを作成することもできません

編集(OPの要求に応じて):

リストを反復処理する方法

というリストがLあり、L次のようになっているとします。

L = ['a', 'b', 'c', 'd']

の要素Lとそれぞれのインデックスは次のとおりです。

+-------+---------+
| index | element |
+-------+---------+
|   0   |   'a'   |
+-------+---------+
|   1   |   'b'   |
+-------+---------+
|   2   |   'c'   |
+-------+---------+
|   3   |   'd'   |
+-------+---------+

python には 0 から始まるインデックスがあるため、 に 4 つの項目があるにもかかわらず、インデックス 4 がないことに注意してくださいL

ここで、 のインデックス 3 のアイテムが必要な場合はL、 を実行しますL[3]。のインデックス 2 のアイテムが必要な場合はL、 を実行しますL[s]

a を反復するにはL(値を出力したいとしましょう):

for elem in L:
    print elem

別の方法:

for i in range(len(L)): # lookup range() and len()
    print L[i]

お役に立てれば

于 2012-11-21T02:06:52.313 に答える