1

我正在使用一个生成 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;
        }
    }

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

4

0 回答 0