C# 将一维字节数组绘制为图像
我有一个一维数组,它是一个64x64图像8位。我想在Windows窗体上显示这个,但我不知道怎么做。是否有人可以提供一个示例代码来执行此操作C# 将一维字节数组绘制为图像,c#,winforms,drawing,C#,Winforms,Drawing,我有一个一维数组,它是一个64x64图像8位。我想在Windows窗体上显示这个,但我不知道怎么做。是否有人可以提供一个示例代码来执行此操作 byte [] image = new byte[64*64]; 我试过这个: ImageConverter ic = new ImageConverter(); Image img = (Image)ic.ConvertFrom(image); <--- Parameter not valid error Bitmap bitm
byte [] image = new byte[64*64];
我试过这个:
ImageConverter ic = new ImageConverter();
Image img = (Image)ic.ConvertFrom(image); <--- Parameter not valid error
Bitmap bitmap1 = new Bitmap(img);
bitmap1.SetResolution(64, 64);
e.Graphics.DrawImage(img, 400, 10);
ImageConverter ic=新的ImageConverter();
图像img=(图像)ic.ConvertFrom(图像) 您需要首先将字节数组转换为图像:
byte [] imageBuffer = new byte[64*64];
... populating the byte array...
Image image = null;
using (MemoryStream ms = new MemoryStream(imageBuffer))
{
image = Image.FromStream(ms);
}
为了在表单上显示它,您需要在表单中添加一个控件,并设置它的Image
属性:
pictureBox1.Image = image ;
您需要首先将字节数组转换为图像:
byte [] imageBuffer = new byte[64*64];
... populating the byte array...
Image image = null;
using (MemoryStream ms = new MemoryStream(imageBuffer))
{
image = Image.FromStream(ms);
}
为了在表单上显示它,您需要在表单中添加一个控件,并设置它的Image
属性:
pictureBox1.Image = image ;
我理解您想要做什么,在windows窗体应用程序中显示图像,但我不理解的是您试图通过这种方式实现什么,您想要实现什么?您正在尝试创建绘图应用程序吗?您的意思是您有图像的字节数据吗?当然,它将是一个一维数组。请说明如何填充图像
,以澄清您试图实现的目标。感谢您的评论,因此图像由一个小分辨率的摄像头捕获,我正在获取一个64 x 64的roi,以便我可以在windows窗体上显示它。这不是这样做的吗?主要问题可能是转换器不知道如何解释/理解字节数组。即使是原始字节也有格式/含义:rgb、rgba、argb,…我理解您想要做什么,在windows窗体应用程序中显示图像,但我不理解的是您试图通过这种方式实现什么,您想要实现什么?您正在尝试创建绘图应用程序吗?您的意思是您有图像的字节数据吗?当然,它将是一个一维数组。请说明如何填充图像
,以澄清您试图实现的目标。感谢您的评论,因此图像由一个小分辨率的摄像头捕获,我正在获取一个64 x 64的roi,以便我可以在windows窗体上显示它。这不是这样做的吗?主要问题可能是转换器不知道如何解释/理解字节数组。甚至原始字节也有格式/含义:rgb、rgba、argb,…不,它不是从文件加载的,我正在从摄像头抓取数据,它为我提供了一个字节数组。我选择的ROI为64x64,我想在windows窗体中显示它。感谢更新代码,我尝试了它,但在image=image.FromStream(ms)调用中仍然得到一个错误参数无效。@godsped我已经测试了这段代码,如果imageBuffer
是一个有效的图像并且它不为空,它就会工作。[MSDN文档]中也规定了这一点(如果将ms
的声明替换为以下内容,您可以自己测试:Stream ms=new FileStream(@“从硬盘驱动器到某个本地映像的路径”,FileMode.Open)
不,它不是从文件加载的,我正在从一个摄像头抓取数据,它为我提供了一个字节数组。我正在选择一个64x64的ROI,我想在windows窗体中显示它。感谢更新代码,我尝试了它,但仍然在image=image.FromStream(ms)中得到一个错误参数无效调用。@Godspped我已经测试了这段代码,如果imageBuffer
是一个有效的图像并且它不为空,它就可以工作。这也在[MSDN文档]中指定(。如果您用以下内容替换ms
的声明,您可以自己测试:Stream ms=new FileStream(@“从硬盘驱动器到某个本地图像的路径”),FileMode.Open)