我正在尝试用C#创建一个纸牌游戏,为此我有很多需要加载的图像。它们都是jpg图像,其中大约有7000个。
我想确保如果您下载游戏,图像将无法轻松访问,这意味着它们不应仅仅是应用程序的子文件夹中的JPG图像。所以我考虑将它们嵌入到DLL文件中。
但是我该怎么做?我该如何有效地处理这个问题?是否有这种方法,或者另一种方法更好?
答案 0 :(得分:2)
我想确保图片不易被访问
首先,你应该问自己为什么要禁止这个。如果你只是想避免别人操纵图片,你可以将它们留在一堆子文件夹中作为JPG,只需为每个文件生成校验和,并在程序加载图片时检查它们。
如果您想避免重复使用图片,可以将它们放在一堆子文件夹中,但不能放在JPG中。例如,使用标准AES算法对它们进行编码。但请注意,这不会阻止其他人在应用程序运行时制作屏幕截图,因此您应该考虑这是否值得付出努力。
编辑:如果你想嵌入图像,因为当你只有一个大文件要部署而不是7000个单个文件时安装变得更容易,那么你可以编写一个帮助程序来编程创建资源文件。请参阅此page from Microsoft,尤其是有关.resource
文件的部分,以了解如何将ResourceWriter
类用于此目的。
答案 1 :(得分:1)
如果您有7000张图片,则需要一个数据库。 Microsoft SQL Server Compact 4.0是一种选择。它体积小,易于使用。
答案 2 :(得分:1)
我假设这是一个Windows应用程序
为了将图像嵌入到程序集中
1. Right click the Image file and Select properties
2. In the Properties Pane Set the BuildAction as Embeded resource
因此,在编译应用程序时,此Image将成为嵌入式资源
然后您可以从程序集中访问图像,如:
global::[[MyNameSpace]].Properties.Resources.[[ImageName]]
例如:this.pictureBox1.Image = global::[[MyNameSpace]].Properties.Resources.[[ImageName]]