基本的に、編集後にファイルに文字列を書き込もうとしているだけであり、概念実証として、無意味な変更を加えようとしています。ただし、以下の例に示すように、これでも何らかの理由で出力のサイズが 2 倍になります。なぜこれが起こっているのか誰にも分かりますか?
content = StringIO.getvalue()
with open("real.png", 'wb') as dump:
dump.write(content) #35KB
content = [str(ord(char)) for char in content]
content = "".join([hex(int(char)).lstrip("0x").zfill(2) for char in content])
with open("new.png", "wb") as dump:
dump.write(content) #70KB