我正在picturebox
pictureBox1.Image = Image.FromStream(imageActions.GetImage(reader["ID_no"].ToString()));
它工作正常,但我也为用户创建了一个选项,可以通过任何应用程序编辑它(让我们的例子是宏媒体)所以我创建了一个按钮并完成了它。
private void button2_Click(object sender, EventArgs e)
{
Process photoViewer = new Process();
photoViewer.StartInfo.FileName = @"C:\Program Files\Macromedia\Fireworks 8\Fireworks.exe";
photoViewer.StartInfo.Arguments = ___________;
photoViewer.Start();
}
我知道在photoViewer.StartInfo.Arguments =
中你可以把图像的路径放在这里,但在我的情况下。图像以Image
数据类型存储在数据库中。任何想法?
答案 0 :(得分:0)
要在外部应用程序中加载图像,首先需要将其保存到磁盘中。
应用程序关闭后,您需要加载更新的图像以显示给用户。
PictureBox控件的Image
属性有一个可以调用的Save方法:
string tempFile = System.IO.Path.GetTempFileName();
pictureBox1.Image.Save(tempFile);
然后,您可以将tempFile
值作为参数传递给photoViewer进程(我将MSPaint用作概念证明):
Process photoViewer = new Process();
photoViewer.StartInfo.FileName = @"C:\Windows\System32\MSPaint.exe";
photoViewer.StartInfo.Arguments = tempFile;
photoViewer.EnableRaisingEvents = true;
photoViewer.Exited += photoViewer_Exited;
photoViewer.Start();
photoViewer.EnableRaisingEvents = true
和photoViewer.Exited += photoViewer_Exited;
这两行会在photoViewer进程退出时告诉您的应用,这是您加载图片并向用户显示的好地方。
private void photoViewer_Exited(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile(tempFile);
}
注意:string tempFile
需要是一个类成员变量,因此可以在两个函数中访问它。