C#下怎么从指针指向的byte数组转换成bitmap类型

问题描述

如题,用的Basler家的GiE相机,使用官方提供的库文件,抓取图像后返回图像数组指针到主窗口下,希望显示在PictureBox控件,请指教~具体点的话,数组长度和图像分辨率是已知的,8位灰度图像,数组为一维Byte类型的数组,按行存储,一个Byte就是一个像素点;这里实现了再改用12位量化来提高测量的精度。C#下返回一个IntPtr类型的指针上位机接触不多,还请多指教

解决方案

解决方案二:
建议两种方法你可以试一下,1、确定图像大小,setpixel逐点设置;2、lockbits,指针操作(http://blog.sina.com.cn/s/blog_4e3e2ce4010009on.html)
解决方案三:
//指定宽和高intwidth=500,height=500;//8bit索引方式位图,设置灰度调色板varfmt=PixelFormat.Format8bppIndexed;varbmp=newBitmap(width,height,fmt);varpalette=bmp.Palette;for(vari=0;i<256;i++)palette.Entries[i]=Color.FromArgb(i,i,i);bmp.Palette=palette;//使用ptr指针指向的数据构造位图vard=bmp.LockBits(newRectangle(0,0,width,height),ImageLockMode.WriteOnly|ImageLockMode.UserInputBuffer,fmt,newBitmapData{PixelFormat=fmt,Height=height,Width=width,Stride=width,Scan0=ptr});bmp.UnlockBits(d);//保存bmp.Save("e:\x.png");

时间: 2024-10-25 05:01:46

C#下怎么从指针指向的byte数组转换成bitmap类型的相关文章

使用C# 将符合webp格式的Byte数组转换成 jpg 格式数组

问题描述 目前遇到一个问题,就是要在获得图片的时候看这个数组是不是webp格式,如果是我想把它转换成jpg格式的byte数组.webp格式的使用BitMap不能识别 解决方案 解决方案二: 解决方案三:自己已经解决,可惜不能给自己分解决方案四:遇到同样问题,怎么解决的?webp转jpg格式解决方案五:已经解决也不说怎么解决,能给自己分也不配给.

求大神讲解一下指针指向二维数组时该怎么用?

问题描述 求大神讲解一下指针指向二维数组时该怎么用? 指针指向一维数组时只用*(p+n)即可,但是二维数组时候改怎么用呢? 解决方案 个人认为其实二维数组还是一维数组,没有什么区别,例如int a[3][4],就相当于int a[12].要想访问a[2][3],就用*(a+(4*2+3)*(sizeof(int))),应该是这样,不过我一般用a[4*2+3] 来访问对应的元素 本人也是菜鸟,如果有错还请大神们指正~ 解决方案二: 由于指针与数组之间可以若转化,所以在一定程度上可以理解为数组就是指

java代码将一个byte数组封装成url,可以直接访问网络下载

问题描述 java代码将一个byte数组封装成url,可以直接访问网络下载 1.我从别的地方能且只能得到一个byte数组和一个文件名,此数组原本是一个doc文件, 2.我现在要将这个数组封装成url下载地址,就是直接在浏览器中输入地址就能直接下载的那种 3.我用的语言是java,服务器是tomcat 各位大神,救命! 解决方案 换个思路,不是组装成url,而是在给定一个selevet,然后在相应的response写回数据.还有要在response返回时设置相应的header参数. Content

字符-java 中byte数组转换问题,求思路

问题描述 java 中byte数组转换问题,求思路 现在做的项目有一个byte数组转换的问题,思考很久没有思路,求各路大神给点意见. 需求 :将一个byte数组中的每个元素拆分成两个byte.分别保存前一个byte中的16进制两位的内容的ascii码. 事例 : byte[] a = {0x24,0xBD}; byte[] b = new byte[4]; 想得到的结果: b[0] == 0x32; b[1] == 0x34; b[2] == 0x42; b[3] == 0x44;

缓存-将串口接收的数据实时刷新在Edit控件上,问题在于如何将BYTE数组转成CString

问题描述 将串口接收的数据实时刷新在Edit控件上,问题在于如何将BYTE数组转成CString 想请问串口接收数据到一个缓存中(BYTE或PBYTE)吧,但是因为输出到Edit控件中就必须先转成CString(看到EDit的成员函数都是操作CString的),即问题在于如何将BYTE数组转成CString,网上查了一下有限个数的数组可以依次Format到CString,但因为现在是大量的数据,所以这个问题如何解决?还有Edit控件显示接收到的数据,肯定不能是"00010203".而最

将byte数组转化成字符串

问题描述 byte[] b=new byte[1024];new String(b);能将byte数组直接这样搞? 求解释 谢谢 解决方案 String 类中提供了一个这样的构造方法你查找JDK文档中 String(byte[] bytes) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String.

Java 文件和byte数组转换

/** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File file = new File(filePath); FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); byte[] b = new

怎样将short[]数组转换成byte[]数组

  byte[] byteArray = Array.ConvertAll<short, byte>(shortArray, Convert.ToByte);  

求助byte数组怎样转换bigdecimal

问题描述 怎样把byte数组转换为bigdecimal类型的数据呢 解决方案 解决方案二:--你数组时什么编码的?解决方案三:publicstaticvoidmain(String[]args){bytea=123;BigDecimalb=newBigDecimal(a);System.out.print(b);}数组的话你自己一个一个弄吧解决方案四:有个不太好的方法因为BigDecimal构造函数没有直接用byte型转换的但有String和其他型的可以先把byte数组转换成String型再转换