编辑图像源C#

时间:2015-10-15 05:31:51

标签: c# image

我尝试编辑图像文件,而不是路径,我应该能够提供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;

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:0)

你不能。

ProcessStartInfo启动一个位于应用程序App Domain之外的新进程。您不能将其作为命令行参数在应用程序域内的内存中传递。