-4

タスクを実行し、PNG ファイルとともに出力を生成する Python スクリプトを作成しています。PNGファイルをSublime textに入れたとき。

前もって感謝します。

4

1 に答える 1

8

Sublime で表示される「エンコーディング」は、PNG の 16 進数表現です ( hexdumpとも呼ばれます)。

Sublime は、デフォルトで、バイナリ ファイルの 16 進ダンプを表示します。

崇高なヘックス

バイト 1 ~ 3 (バイト 0 は 89) は ascii'PNG'です。

  • 50P
  • 4eN
  • 47G

ASCII テーブルを調べて、自分の目で確かめてください。

ファイルをvimで開くと、ガーベルディグックのバイナリ混乱が発生しますが、少なくともこれがPNGであることを示すファイルマジックを見ることができます。

vim バイナリ

同じ画像だけど。画像ビューアー (またはブラウザー) で開くだけです。

猫

このイメージの hexdump を作成したい場合は、それを読み込んで、binascii で変換するだけです。

import binascii
ff = open("cat.png", "rb")
data = ff.read()
ff.close()

txt = binascii.hexlify(data)

fw = open("cat.txt", "w")
fw.write(txt)
fw.close()

完全な 16 進ダンプ (ただし、スペースはありません) がある場合は、元に戻すことができます。

import binascii

ff = open("cat.txt", "r")
txt = ff.read()
ff.close()

image = binascii.unhexlify(txt)

スペースがある場合 (上記の Sublime の場合のように)、その間にすべての空白を削除してください。

import binascii

ff = open("cat.txt", "r")
txt = ff.read()
ff.close()

# Split on space, join back with no separator
txt = "".join(txt.split()) 

image = binascii.unhexlify(txt)
于 2013-10-13T13:02:15.860 に答える