如何动态加载图片框中的图像?

时间:2013-12-13 02:07:57

标签: c# visual-studio-2010 picturebox

我需要将图片加载到图片框中。

图像名称来自数据库。

 data[14].ToString() = 20131213.jpg

以下代码对我不起作用,相反它只显示带有照片路径的消息框..

 try
   {
        pictureBox1.Image = Image.FromFile(@"C:\ORS\uploads\photos" +  data[14].ToString() + "");
   }
 catch (Exception ex)
   {
         MessageBox.Show(ex.Message);
   }

StackTrace = " at System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)\r\n at System.Drawing.Image.FromFile(String filename)\r\n at PSPC.RECRUIT.RE010_1.RE010_1_Load(Object sender, EventArgs e) in C:\\Users\\Quen\\Desktop\\Files\\Sour...

2 个答案:

答案 0 :(得分:0)

这个问题还不足以让我们专门回答,但是在加载可能导致代码无法工作的图像时会出现一些常见的错误:

  • 文件名或路径不正确。我建议将文件名放入一个字符串变量中,然后使用调试器复制该名称并粘贴到一个开头 - >运行框。这对于弄清楚文件名/路径是如何错误非常有用。
  • 文件无效或格式不正确。如果您不小心重命名文件或文件不是.NET识别的图片(例如,在Photoshop中编辑的分层TIFF图像不能在.NET中打开),就会发生这种情况。 GDI +图像格式和类型存在限制,因此您需要真正了解它们。
  • 拒绝文件访问。如果程序作为标准用户帐户运行且文件位于系统文件夹中的某个位置,即使文件存在,也可以获得此信息。如果需要加载此文件,则需要添加应用程序清单以使用提升的权限运行进程。
  • 其他地方使用的文件即使您没有在其他位置打开文件也可以获得此功能,因为打开位图而不进行处理会使文件保持正常使用状态。 99%的时间可以通过在“using”语句中打开位图来解决此问题。注意:如果图像绑定到表单,则无法使用此项,因为处理图像会导致表单崩溃。从表单中删除图像后处理。使用语法的示例如下:

    使用(Image x = Bitmap.FromFile(fileName)){     //这里使用图像的代码  }

  • 内存不足异常 - 如果打开的图像太大或系统内存不足,则会出现此问题。请注意,.NET进程无论如何都要运行更少的内存,因此您实际上只能使用“普通”大小的图像。

  • 参数无效 - 这是最难解决的问题,但它通常归结为任何数量的事情,例如您通过分配太大的图像要求过多的GDI +成像引擎

我不知道这是哪个问题,但我怀疑如果你通过这个清单它应该(迟早)解决你的问题。祝你好运!

答案 1 :(得分:0)

路径中可能缺少图像文件。请验证