これはかなり単純に思えます:
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 バイト。