数据库或项目文件夹中的图像作为资源

本文关键字:图像 资源 项目 项目文件 文件夹 数据库 | 更新日期: 2023-09-27 18:25:32

我正在创建一个应用程序,其中包含用户无法编辑的数据库。它只是有数据,并显示给用户。我发现我不必使用本地存储,我只需要将数据库添加到项目中,它是只读的。所以我做了,一切都很好。现在我想把图片添加到我的应用程序中,我不确定什么是更好的方法。我可以将每个图像添加到文件夹中,在数据库中存储图像的路径,这很容易,现在就可以做到了。或者我发现我可以将数据库中的图像存储为图像(byte[])。什么更好?数据库中的图像会更小吗?加载图像的速度会更快吗?如果数据库中的图像是更好的解决方案,我可以简单地将图像添加到我现有的数据库中吗?在winforms中有这样做的文章吗?感谢

编辑:我很高兴我的问题有这么多答案和意见。我想更多地解释我的需求。我的应用程序应该有大约150张图片,图片大小应该是150px和100px。我想应用程序可以在没有互联网连接的情况下工作。它可以连接以获取更新,但仅此而已。再次感谢所有意见:)

数据库或项目文件夹中的图像作为资源

对于我们的应用程序,我们发现混合方法效果最好。我们将SQL环境配置为支持FILESTREAM,然后导入了所有映像。这使我们能够灵活地将图像"保存在sql中",同时仍将实际图像存储到磁盘中。这是一个快速的解决方案,可能对你也很有效。

关于你把图像放在哪里,有很多"如果"、"但是"answers"可能",我认为没有对错之分。

值得一提的是,如果应用程序是高可用性的业务关键型应用程序,我会将它们存储在数据库中,因为它可以与其他数据一起备份。数据库可以镜像等,因此将所有图像都视为"数据"是有益的。此外,如果事情变得很大,并且使用了网络农场和负载均衡器等,当图像位于一个地方时,这会有所帮助。

对我来说,我会使用数据库。但这一切实际上取决于您的应用程序的规模。

我个人会将所有图像存储在独立的存储中,并在数据库中存储图像的路径

我会将所有图像存储为隔离存储中的一个字节[]

这里已经给出的答案没有错,但这实际上取决于您试图实现的目标以及当前的设置方式。

最好是使用静态图像的内容交付网络来减轻web服务器的负载。

您可以根据自己的喜好从数据库中服务,也可以作为文件结构中的资源文件。如果图像是静态的,不要忘记为静态内容添加适当的缓存。

如果你正在渲染图像,我肯定会把图像保存在数据库中,这样就可以从任何数量的网络服务器访问图像。

如果您愿意,您可以通过将最近使用的映像保存在内存中或存储在本地文件系统中来进一步开发此功能,这样您就不必每次都从数据库中获取文件。

web文件夹。还可以考虑从Amazon S3这样的云服务器远程加载它们,以释放对您自己的服务器的访问权限

最好的选择是将您的图像存储在web文件夹中,如果您将它们保存在DB中,您将浪费时间从DB中检索它们,因为这需要更多的时间