3

これはかなり単純に思えます:

import png
rdr = png.Reader(filename='help.png')
width, height, pixels, metadata = rdr.read()
with open('help-new.png', 'w') as outfile:
    png.Writer(**metadata).write(outfile, pixels)

ただし、ファイルが「破損しているか、破損しているか、大きすぎるように見える」ため、新しいイメージを開くことができません。結果を PyPNG に読み込もうとすると、次のようになります。

FormatError: FormatError: PNG file has invalid signature.

追加情報: メタデータは次のようになります。

'bitdepth': 8, 'interlace': 0, 'planes': 1,
'greyscale': False, 'alpha': False, 'size': (18, 18)

最初のパレット エントリは (0, 0, 0, 0) ですが、他のエントリはすべて (255, 255, 255, A) の形式で、A は 0 ~ 255 です。ソース ファイルは 718 バイト、結果ファイルは748 バイト。

4

1 に答える 1