“直接”保存到剪贴板 - 可能吗?

时间:2012-05-01 15:19:46

标签: c# .net clipboard clipboard-pictures

我正在使用以BMP或JPG格式生成图像的API。有问题的API方法需要路径和文件名。但是,在某些情况下,我想简单地将图像放入剪贴板。

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

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;
        }
    }

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

0 个答案:

没有答案