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();
}    

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

时间: 2024-08-01 02:23:14

DataFormats.Dib 保存为图片文件的相关文章

InputStream流保存成图片文件

public void saveBit(InputStream inStream) throws IOException{ ByteArrayOutputStream outStream = new ByteArrayOutputStream(); //创建一个Buffer字符串 byte[] buffer = new byte[1024]; //每次读取的字符串长度,如果为-1,代表全部读取完毕 int len = 0; //使用一个输入流从buffer里把数据读取出来 while( (len

截屏,并保存为图片文件

1 void CMyPrntScrDlg::Screen(const char* filename) 2 { 3 //GetDC(); 4 CDC *pDC;//屏幕DC 5 pDC = CDC::FromHandle(::GetDC(NULL));//获取当前整个屏幕DC 6 int BitPerPixel = pDC->GetDeviceCaps(BITSPIXEL);//获得颜色模式 7 int Width = pDC->GetDeviceCaps(HORZRES); 8 int Hei

图片文件和Bitmap之间的转换

图片文件转为Bitmap对象String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePath); 如果图片过大,可能导致Bitmap对象装不下图片解决办法:String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePath,getBitmapOption(2)); //将图片的长和宽缩小味原来的

如何保存几何画板文件

今天小编来和大家一起探讨下几何画板保存文件的方法.一共有三种方法. 几何画板中保存画板文件的三种方法如下: 方法一:使用"保存"按钮 新建画板文件后先点击文件菜单中的保存按钮,或者使用快捷键"Ctrl+S",这样就可以随时保存修改的画板文件.随时编辑随时保存,能确保文档不因为意外关机而损失惨重.此命令是保存文档后不退出编辑状态,可以继续编辑文档.默认的文件名从"未命名1"开始,依次顺延,默认保存格式为"*.gsp". 方法二:

MindMapper导图如何保存成图片

我们可以将MindMapper思维导图保存为多种格式的文件,具有对多样性,从文档到图片这些我们常用的格式都能够自由转换.下面我们就一起去看看如何如何将MindMapper导图保存为图片. 当我们在MindMapper思维导图中绘制好导图,像要将之保存为图片时,点击[文件]中的保存/发送,然后跳转至文件格式板块中的更改文件格式. 我们可以看到都多种保存为图片的形式,我们一般常用第一项保存为图片文件形式. 点击后会跳出保存文件框,选择保存MindMapper文件的位置,选择好后点击保存,这时系统会跳

如何保存几何画板文件为图片格式

几何画板在绘制完图片后保存的时候默认的是gsp文件,怎样才能保存为图片格式的文件呢?下面我们将介绍将几何画板文件保存为图片格式的方法. 方法一.直接保存文件为“emf”格式 绘制完成图片后,在“文件”菜单下选择“另存为”,在弹出的另存为对话框选择增强型图元文件“emf”格式保存.  几何画板中选择另存为时选择增强型图元文件类型 方法二.使用画图软件保存为图片格式 1.在几何画板制作好图画后,单击键盘“PrtSc”键截屏. 2.打开系统自带的画图软件,按住“Ctrl+V”组合键粘贴截屏.用“选择”

读取视屏文件,保存帧图片为ppm文件

ffmpeg跟sdl的学习过程:一.版本信息:ffmpeg-3.0.2.tar.bz2SDL2-2.0.4.tar.gz二.编译过程:1.ffmgeg的编译:./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpegmakemake install 2.sdl的编译:./configure --prefix=/usr/local/sdlmakemake install 3.系统环境配置:查看/etc/ld.so.co

PHP保存Base64图片base64_decode的问题 文件打不开的问题

PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码. 编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到. 而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的.但是如果直接放到php里用base64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api. DATA ls_appl_object TYPE gos_s_obj. DATA lo_gos_api TYPE REF TO cl_gos_api. DATA lt_attachment_list TYPE gos_t_atta. DATA lt_role_filter TYPE gos_t_rol. DATA: lv_