2013-12-13 61 views
0

我需要将图像加载到图片框。如何动态加载图片框中的图像?

图像名称来自数据库。

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

下面这段代码是不是为我工作,而不是只显示与照片的路径一个消息..

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

堆栈跟踪= " 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...

+0

你是说你在这里粘贴的代码不起作用吗?什么是问题? –

+0

它可能是你错过了一个“\”后的单词照片,除非是在你正在返回的数据库字段 –

+0

试过它,但仍然无法正常工作..但谢谢!我真的忘了那个“\”.. – QKWS

回答

0

这个问题是不是真的足以脱身以回答具体的问题,但在加载可能导致代码不起作用的图像时存在一些常见错误:

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

    使用(图像X = Bitmap.FromFile(文件名)){// 这里代码,使用所述图像 }

  • 缺货存储器异常的 - 你如果您打开的图像太大或系统内存不足,请获取此信息。请注意,.NET进程无论如何都会获得更少的内存,因此您实际上仅限于“正常”大小的映像。

  • 参数无效 - 这是最棘手的故障排除,但它通常涉及到任何数量的问题,例如,您通过分配太大的图像来问太多GDI +映像引擎。

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