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(); }
直接保存为图片是不成功的,需要插入一个文件头,具体是什么原因,目前没有深入研究,有知道的话告诉我下。