在WPF应用程序中将剪贴板中的位图保存到png中

时间:2018-10-03 10:29:03

标签: c# bitmap save png

我需要将位图发送到我的聊天应用程序中,所以我的想法是将其保存到一个临时文件夹中,然后从那里上传它,就像我的拖放图像已经可以正常工作一样。但是,当它在Windows FileViewer中保存位图时,我可以看到缩略图,但是在其他任何地方都为空,这可能是问题所在或如何更好地执行此操作?提前致谢。 这是一个视频,您可以更好地了解^^ https://youtu.be/p0t2byTRN58

string temp = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + @"\Luxray\" + @"\clipboardimg.png";
if (File.Exists(temp))
{
    File.Delete(temp);
}
BitmapSource bmpSource = Clipboard.GetImage();
MemoryStream ms = new MemoryStream();
FileStream stream = new FileStream(temp, FileMode.Create);
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmpSource));
encoder.Save(stream);
stream.Close();

如果声明检查剪贴板中是否有位图并且在视频中按下了ctrl + v的语句是在弹出带有“ img send”的msgbox之后,则此代码立即运行。

1 个答案:

答案 0 :(得分:0)

您要达到什么目标?如果您要保存剪贴板图像以归档,则以下代码对我有用:

var img = System.Windows.Forms.Clipboard.GetImage();
img.Save(savePath, ImageFormat.Png);