图像如何存储在字节数组中

时间:2012-08-28 20:37:57

标签: .net image bytearray ascii

如何将图像内部存储在字节数组中?在Visual Studio中进行调试时,我可以看到ASCII代码(我猜)。但请有人解释一下。

说,我们有一个存储在表格中的图像(BLOB)。将BLOB提取到代码中的dataTable中(在.net中),

byte[] image = new image();
DataTable dt = new DataTable();
dt.Columns.Add("Image", typeof(byte[]));
\\Consider the BLOB from the DB is fetched into DataTable Image column.
image = dt[Row]["Image"];

现在,BLOB内部如何存储在byte []图像中?

我在互联网上搜索但找不到任何东西。

3 个答案:

答案 0 :(得分:3)

任何图像都只是根据用于表示它的任何基础格式构造的字节序列,例如颜色数据,图层,尺寸等。在调试过程中看到的任何字节的重要性完全取决于图像的原生格式,例如PNG,TIFF,JPEG,BMP等。

希望这就是你要找的东西。如果您需要更具体的内容,请修改您的原始帖子,也许有人可以为您提供更多详细信息。

答案 1 :(得分:2)

我不确定什么不清楚,但也许这段代码可以提供帮助

MemoryStream m = new MemoryStream();

Image img = Image.FromFile(file);
img.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);

byte[] bytes = m.ToArray();

m.Position = 0;
Image img2 = Image.FromStream(m);

答案 2 :(得分:1)

图像通常是由文件中的某个算法编码的颜色数组。我熟悉GIF图像格式。请看下面的图片,看一个红色的“V”存储在白色背景中的例子。此示例中的图像宽度可以是7个像素,高度是4个像素。每个图像始终都有一个颜色表,表示图像中使用的颜色数。 R标记的像素是红色的,w标记的像素是白色的。

RwwwwwR
wRwwwRw
wwRwRww
wwwRwww

每个像素是32位宽的整数,用于表示r(红色)g(绿色)b(蓝色)分量和透明度分量。