Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将一维字节数组绘制为图像_C#_Winforms_Drawing - Fatal编程技术网

C# 将一维字节数组绘制为图像

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

我有一个一维数组,它是一个64x64图像8位。我想在Windows窗体上显示这个,但我不知道怎么做。是否有人可以提供一个示例代码来执行此操作

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)