私は を簡単にメモリに読み込むことができるように、このデータをすべて1つのファイルに保存できますか?これを簡単にするメモリに画像 のデータを保存する方法はありますか?
はい。
私がかつて取り組んでいた組み込みシステムでは、sysstemの設定をramファイルシステムに取り込むことが要件でした。 (1Mバイト)
zlibを使用して、複数のファイルを圧縮して1つのストレージファイルにマージしました。
おそらく、任意の圧縮システムがあなたのために働くことができます。 Linuxでは、私は(この質問のために)私のpopenのデモでなどgzipやgunzipを、
更新2017年8月7日
を実行するためにpopen()を使用することになり、私はコマンド文字列とを構築します
std::string cmd;
cmd += "tar -cvf dumy514DEMO.tar dumy*V?.cc ; gzip dumy514DEMO.tar ; ls -lsa *.tar.gz";
// tar without compression ; next do compress
次に、popen-wrapped-in-a-classインスタンスを作成し、popenの読み込みアクションを呼び出します。通常はユーザにはほとんどフィードバックがありません(UNIX Philosophyのスタイルと同様、成功メッセージもありません)。このデモでは-v(冗長オプション)を含めました。結果として得られたフィードバックは一緒にtarされた4つのファイルをリストアップし、結果の.gzファイルをリストします。
dumy514V0.cc
dumy514V1.cc
dumy514V2.cc
dumy514V3.cc
8 -rw-rw-r-- 1 dmoen dmoen 7983 Aug 7 17:23 dumy514DEMO.tar.gz
とdirのリストからの抜粋私の実行、私のソースコード、および新たに作成されたtar.gz.を示し
-rwxrwxr-x 1 dmoen dmoen 86416 Aug 7 17:18 dumy514DEMO
-rw-rw-r-- 1 dmoen dmoen 13576 Aug 7 17:18 dumy514DEMO.cc
-rw-rw-r-- 1 dmoen dmoen 7983 Aug 7 17:23 dumy514DEMO.tar.gz
ご覧のとおり、tar.gzは約8000バイトです。 4つのファイルは約70,000バイトになります。
なぜ同じファイル内の画像を属性として使用したいのですか?そんなことをするには貧しいデザインのようだ。理由はありますか、これは単純さの目的ですか? –
@ EastonBornemeier私は、ユーザーがすべてのデータを含む単一のファイルを開くことができるようにしたい。ユーザーがファイルを共有することが簡単で、単一のプロジェクトで複数のファイルをまとめておくことを心配する必要はありません。 –
これを行う1つの方法は、ファイルの先頭にデータブロック(たとえば1024バイト)を予約することです。テキストサイズがわかっていて、十分に小さい場合にのみ、この作業が可能です。 – Phil1970