我是一个visual studio的新手,我正在创建一个winform,它可以根据用户通过单选按钮的输入,在图片框中选择并显示一个特定的图像,整个界面运行良好。
我通过项目内部的resx资源测试了大约50张图片,效果也很好。
问题->我将使用大约3500图像(最初3500,当项目完成时,它将是10.000+图像),每当我添加到resx所有这些图像,它只是停止工作。
可能的解决办法:
1.从外部文件结构加载图片(可以做,很容易,但我希望能够编译它,使最终用户无法看到,下载或修改'图像' -图像应该只能通过应用程序'查看')。(隐藏/编码在exe中)比这将是我的首选,但我好像找不到(然后我可以事后混淆的exe和有'一些'保护)这是一个非常容易的'文件夹结构'(4个文件夹,每个文件夹包含1000到3500张图像,当所有模块完成时)
1.使用DLL资源只存档,并将其包含在构建中。(首先要使用少量的图像),但我遇到了一些问题。我制作了一个只包含一些resx资源的DLL(一组PNG图像)-我第一次这样做,不确定我是否应该在那里添加或更改一些设置??(我把资源公开了)我在主应用程序的表单中引用了这个DLL。我还在上面做了'using...'。当我试图将它们加载到图片框中时,我能够看到资源。程序抛出一个错误,即无法将'byte'转换为'image'。我下面是一个很老的线程的建议,它表明直接引用DLL公共资源的方法应该有效......但它没有。
任何建议,无论是使用系统1或2和可能的帮助或解决方案,为他们?或任何更好的想法,我忽略了或不知道?(图片每个都是277 KB,重要的是用户没有直接访问它们的权限来复制/过去/分发/.)。如果可能的话,我更喜欢在构建中使用图像资源,而不是使用“云”解决方案,因为我希望在没有互联网的情况下可以访问所有内容。场景“s”,如在飞机上,等等。
lib reference
lib activated的
old thread related to this的
error message的
Picbox command + error code的
1条答案
按热度按时间7uzetpgm1#
当你说你在.resx中添加了图片时,我不知道你是怎么做到的。但我会尝试直接操作.csproj文件来嵌入它们。我尝试生成3500个交替的测试图片(你说277 kb,这些正好是244 kb)。
x1c 0d1x的数据
接下来,我生成了可以复制到.csproj中的标记
字符串
.csproj中的最终结果是:
型
然后,您所需要的就是一个扩展来将嵌入的图像加载到图片框中。
型
这个可执行文件有3/4千兆字节,但是它看起来构建和运行都很好,也许你可以以此为起点,做进一步的实验。
下面是我用来测试这个答案的代码:
的
型