C# &引用;“储蓄”;直接到剪贴板-可能吗?

C# &引用;“储蓄”;直接到剪贴板-可能吗?,c#,.net,clipboard,clipboard-pictures,C#,.net,Clipboard,Clipboard Pictures,我正在使用一个API,它可以生成BMP或JPG格式的图像。所讨论的API方法需要路径和文件名。但是,在某些情况下,我只想将图像放入剪贴板 我知道我可以保存到文件,然后打开该文件并将流的数据复制到剪贴板: private void SaveSnapshot(string path) { var pathWasblank = path.IsNullOrBlank(); path = path.NullIfBlank() ?? Path.Combine(Envi

我正在使用一个API,它可以生成BMP或JPG格式的图像。所讨论的API方法需要路径和文件名。但是,在某些情况下,我只想将图像放入剪贴板

我知道我可以保存到文件,然后打开该文件并将流的数据复制到剪贴板:

private void SaveSnapshot(string path)
    {
        var pathWasblank = path.IsNullOrBlank();
        path = path.NullIfBlank() ?? Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures),"tempFile.jpg");
        myApiInstance.ExportJPG(path, 100, true);

        //to ensure the file has made it to the filesystem
        while(!File.Exists(path)) Thread.Sleep(100);

        if (pathWasblank) //it should be on the Clipboard and not in a file
        {
            using (var stream = File.OpenRead(path))
                Clipboard.SetImage(Image.FromStream(stream));

            File.Delete(path); //cleanup;
        }
    }

我想知道的是,是否有一种方法可以避免重新打开、复制然后删除文件,而是通过指定与剪贴板对应的文件路径直接“保存”到剪贴板。如果没有,没什么大不了的;我有一个可行的解决方案。

这取决于此API如何生成图像。如果可以提供该流,则可以将其传递为MemoryStream。如果它返回字节[],则可以从该数组创建MemoryStream。如果它只接受一个文件的路径,那么你就无法更改它。这就是我所担心的。是的,如果我能以流或字节数组的形式从这个API中获取图像数据,它将解决许多其他问题,但没有这样的运气。我希望有一些“快捷”路径,可以将保存到剪贴板中的数据,或类似的东西,但显然不是。