4

C# でカード ゲームを作成しようとしていますが、そのためにロードする必要がある画像がたくさんあります。それらはすべてjpg画像で、約7000枚あります。

ゲームをダウンロードする場合、画像に簡単にアクセスできないことを確認したいと思います。つまり、アプリケーションのサブフォルダーにある JPG 画像であってはなりません。そこで、DLL ファイルに埋め込むことを考えました。

しかし、どうすればこれを行うことができますか?そして、これを効率的に処理するにはどうすればよいですか?この種のテクニックはありますか、それとも別の方法が望ましいですか?

4

3 に答える 3

3

[...] 画像に簡単にアクセスできないようにしたいと思います

まず、なぜこれを禁止したいのかを自問する必要があります。他の誰かが画像を操作するのを避けたい場合は、画像を JPG として一連のサブフォルダーに残し、各ファイルのチェックサムを生成し、プログラムが画像を読み込むときにチェックサムをチェックすることができます。

写真の再利用を避けたい場合は、JPG としてではなく、一連のサブフォルダーに残すことができます。たとえば、標準の AES アルゴリズムを使用してそれらをエンコードします。ただし、アプリケーションの実行中に他の人がスクリーンショットを作成することを妨げるものではないことに注意してください。そのため、本当に努力する価値があるかどうかを検討する必要があります。

編集: 7000 個の単一ファイルではなく、デプロイする大きなファイルが 1 つだけの場合にインストールが簡単になるため、イメージを埋め込みたい場合は、プログラムでリソース ファイルを作成するためのヘルパー プログラムを作成できます。この目的でクラスを利用する方法については、 Microsoftのこのページ、特にファイルに関する部分を参照してください。.resourceResourceWriter

于 2012-07-31T06:54:18.013 に答える
1

これはWindowsアプリケーションだと思います

アセンブリに画像を埋め込むため

1. Right click the Image file and Select properties
2. In the Properties Pane Set the BuildAction as Embeded resource

したがって、この画像は、アプリケーションがコンパイルされるときに埋め込みリソースになります

次に、次のようにアセンブリからイメージにアクセスできます。

global::[[MyNameSpace]].Properties.Resources.[[ImageName]]

例:this.pictureBox1.Image = global::[[MyNameSpace]].Properties.Resources.[[ImageName]]

于 2012-07-31T07:11:29.877 に答える
1

7000 枚の画像がある場合は、データベースが必要です。Microsoft SQL Server Compact 4.0はオプションです。小さくて使いやすいです。

于 2012-07-31T06:39:39.117 に答える