DataFormats.Dib 保存为图片文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataFormats.Dib 保存为图片文件相关的知识,希望对你有一定的参考价值。

var data = System.Windows.Forms.Clipboard.GetDataObject();

using (var ms = data.GetData(System.Windows.Forms.DataFormats.Dib) as MemoryStream)
{
    byte[] buff = new byte[ms.Capacity];
    if (ms.CanRead)
    {
        ms.Read(buff, 0, ms.Capacity);
    }
    MemoryStream ms2 = new MemoryStream();
    //构造固定文件头 
    byte[] bmpHeader = new byte[]
    {0x42, 0x4D, 0x96, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00};
    //将文件头和文件数据写入内存流 
    ms2.Write(bmpHeader, 0, bmpHeader.Length);
    ms2.Write(buff, 0, buff.Length);
    //2017年12月18日 09:54:44 
    //保存图片到临时显示目录
    string fileName = Guid.NewGuid().ToString("N") + ".png";
    File.WriteAllBytes(fileName, ms2.ToArray());
    ms2.Dispose();
}    

直接保存为图片是不成功的,需要插入一个文件头,具体是什么原因,目前没有深入研究,有知道的话告诉我下。

以上是关于DataFormats.Dib 保存为图片文件的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 将剪贴板中的图片保存为 jpg

使用WPF将图片转变为灰度并加上水印并保存为文件

PHP上传图片,并以原文件名保存!

将OpenCV函数findContours()得到的每一个轮廓单独绘制并保存为图片文件的Python代码

html5如何根据ps图片排版

如何将Bitmap保存为本地图片文件?