我尝试编辑图像文件,而不是路径,我应该能够提供ImageSource
作为参数。
// EditCode:
Process proc = Process.Start(Path);
proc.EnableRaisingEvents = true;
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Verb = "edit";
proc.StartInfo = startInfo;
proc.Exited += new EventHandler((s, e) => myProcess_Exited(s, e, obj.ToString()));
当我将图像文件的Path
作为参数传递时,上面的代码很有效。但现在我只有ImageSource
。
// ImageSourceCode:
private BitmapFrame LoadImage(string path)
{
BitmapDecoder decoder = null;
if (File.Exists(path) && (path != null))
{
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
decoder = BitmapDecoder.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
}
return decoder.Frames.FirstOrDefault();
}
else
return null;
}
上面的代码获取路径并将图像转换为源(BitmapFrame)并返回它。
现在我需要在某个函数中传递此BitmapFrame
并在paint中编辑特定的图像文件并保存。
我需要这样的事,
Process proc = Process.Start(`ImageSource`);// Instead of path i need to pass the Image Source.
proc.EnableRaisingEvents = true;
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Verb = "edit";
proc.StartInfo = startInfo;
我怎样才能实现这个目标?
答案 0 :(得分:0)
你不能。
ProcessStartInfo启动一个位于应用程序App Domain之外的新进程。您不能将其作为命令行参数在应用程序域内的内存中传递。