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