質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

Q&A

解決済

2回答

2616閲覧

Direct2Dを用いたゲーム制作において、画像ファイルをdatファイル等にまとめる方法

nyamotail

総合スコア6

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

0グッド

0クリップ

投稿2021/10/06 13:00

編集2021/10/07 07:33

現在Direct2Dを用いてゲームを制作しているのですが、リリースにあたって、画像ファイルを隠したいと思っています。現状は、pngファイルのまま入れてある状態です。
隠したい主な理由は、画像を見ることでギミックや隠し要素がわかってしまうからです。
大抵のゲームでは、画像ファイルはdatファイルや独自の拡張子のファイルにまとめられていることが多いと思いますが、どのようにすればよいのでしょうか?
現在は以下のサイトを参考にして画像を描画しています。
Direct2Dでpngファイルの描画を行う

追記
言葉足らずですいません。
アーカイブファイルを作成した場合、IWICImagingFactory::CreateDecoderFromFilename が使用できないのでどうすればよいか悩んでいた次第です。
アーカイブファイルから個々のファイルのバイナリを抽出したとして、それをどのように扱えばよいのかわかりません。
exeファイルへの埋め込みも検討しましたがpngファイルの透過情報が維持できないようなので諦めました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/06 14:03 編集

ZIPの拡張子だけ変えるなり、マイナーなアーカイバ探すなり好きなようにすればいいのでは?どうせ判る人なら調べたら判るので、直接画像が開けない程度で十分でしょう。 そういったものを自力で考えるのすら面倒くさいなら、素直にそのへんを気にせずに済むゲームエンジンなりライブラリなりを採用した方がいいと思います。
nyamotail

2021/10/06 17:30

ZIPの拡張子だけ変えるとはどういうことでしょうか?
dodox86

2021/10/06 23:30 編集

> exeファイルへの埋め込みも検討しましたがpngファイルの透過情報が維持できないようなので諦めました。 そんなことないと思うのですが。元のPNGファイルを純粋なバイナリデータでリソースに埋め込んでおき、復元すれば良いはず。それとも、バイナリで復元しても表示の際にPNGの透過情報がうまく利用できなかった、ということでしょうか。
dodox86

2021/10/07 00:00

何というか、簡単に言うと、独自に複数のバイナリファイルを単一のファイルにまとめたり暗号化したり展開したりして操作するやり方が自分では分からない、ということなのでしょうか。簡単に見れない程度で良いなら、自力で付けたり外したりデータを暗号化・復号したりすればよいだけなのですが。なまじっかAPIなどを使おうとするから話がややこしくなります。
退会済みユーザー

退会済みユーザー

2021/10/07 00:44

あと外部URLは自動でリンクされないので、リンクの挿入で記入するようにしてください。
guest

回答2

0

ファイルから読む方法があるなら、メモリから読む方法もあるのではと想像がつくので、アーカイブファイルから抽出したファイルをメモリに展開出来ているなら、後はそれをメモリから読む方法を探せばよいのではないでしょうか。
まずAPIのドキュメントを読むことです。

How to Load a Bitmap from a Resource (Direct2D)

投稿2021/10/06 23:23

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Windowsでしたら、リソースとして .exe や .dll に埋め込むのがてっとり早いと思います。

リソースからビットマップを読み込む方法 (Windows イメージング コンポーネント)

投稿2021/10/06 15:03

編集2021/10/06 23:16
int32_t

総合スコア21018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問