41458


アイコンや自己作成イラストなどが、例えば`png`拡張子であった場合、これをバイナリ化して、登録し、その`png`ファイル自体はパソコンから存在が消えたとしても、そのバイナリデータさえ残っていれば、復元は可能ですか？普段目にする画像ファイルである`png`ファイルも、結局はバイナリファイルの視覚的結果であって、正体はバイナリで、確かバイナリエディタなどでも、開けばそれらしい配列になっているのを見たことがあります。例えば、  
[png](http://blog.livedoor.jp/cperl/archives/cat_704039.html)です。  
ここを見れば決定的ですが、このバイナリさえ、例えば、pythonであれば`struct`モジュールなどで、`wb`を使いそのバイナリデータを`pack`しておけば、そのファイルが消えない限り呼び出すことは可能でしょうか？質問する前にこたえがわかってきたのですが、あえてお聞きしたいと思います。


CC BY-SA 3.0
2018-02-04T01:58:36.263
41446
2018-02-05T12:21:11.137
24284
question
binary
pngファイル等は、バイナリ化できるのか？


電子メールで添付ファイルを扱う場合と同じく、Base64でエンコードすることでバイナリファイルをASCII(テキスト)データに変換することができます。


CC BY-SA 3.0
2018-02-04T04:32:56.113
41448
2018-02-04T04:32:56.113
3060
41446
answer


バイナリデータをテキスト化する事は、cubickさんの回答にある通りですが、pngデータをプログラム中に取り込んだ(データとしてプログラム内に格納した)場合、外部からは、pngデータを確認する事は困難です。質問としてはそういう事かと思ったのですが、違うでしょうか?  
また、Unix系(他でも?)
では、見えないファイルを作成する事は可能です。ファイルを作成し、アプリから、オープンした後に、削除する。こうする事で、見えないファイルが作成できます。このファイルは、オープンしたアプリが終了した時点で、その実体も削除されます。

追記.  
プログラム内部にpngファイルのデータを持った場合、内部でどう持っているかは、作成者に尋ねるしかありません。あるいは、ハッキングとか、リバースエンジニアリングとかでしょうか。(ルール違反にならない範囲で)頑張るしかないです。  
見えないファイルについても同様で、大抵は、想定外のアクセスがされないための手法。もっともこちらは、単純に隠しファイルに保存されている事が多いとは思いますが、、。  
どちらにしても勝手にアクセスされないための仕組みなので、自分で作成するアプリに使う場合以外は、手を出さない方が賢明と思います。


CC BY-SA 3.0
2018-02-04T13:03:25.583
41458
2018-02-05T12:21:11.137
2018-02-05T12:21:11.137
41446
answer