在C#应用程序中处理大量图像

问题描述 投票:3回答:3

我正在尝试用C#创建一个纸牌游戏,为此我有很多需要加载的图像。 它们都是jpg图像,其中大约有7000个。

我想确保如果你下载游戏,图像将不容易访问,这意味着它们不应该只是应用程序的子文件夹中的JPG图像。 所以我想到将它们嵌入到DLL文件中。

但是我该怎么做? 我该如何有效地处理这个问题? 这种事情有没有tecnique,还是另一种方法更好?

c# image dll resources
3个回答
2
投票

我想确保图像不易被访问

首先,你应该问自己为什么要禁止这个。 如果你只是想避免别人操纵图片,你可以将它们留在一堆子文件夹中作为JPG,只需为每个文件生成校验和,并在程序加载图片时检查它们。

如果您想避免重复使用图片,可以将它们放在一堆子文件夹中,但不能放在JPG中。 例如,使用标准AES算法对它们进行编码。 但请注意,这不会阻止其他人在应用程序运行时制作屏幕截图,因此您应该考虑这是否值得付出努力。

编辑:如果你想嵌入图像,因为当你只有一个大文件而不是7000个单个文件时安装变得更容易,那么你可以编写一个辅助程序来编程创建资源文件。 请参阅Microsoft的页面 ,特别是有关.resource文件的部分,以了解如何将ResourceWriter类用于此目的。


1
投票

如果您有7000个图像,则需要一个数据库。 Microsoft SQL Server Compact 4.0是一个选项。 它体积小,易于使用。


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]]

© www.soinside.com 2019 - 2024. All rights reserved.