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

.net 图像如何存储在字节数组中,.net,image,bytearray,ascii,.net,Image,Bytearray,Ascii,图像如何存储在字节数组中?在VisualStudio中调试时,我可以看到ASCII代码(我猜)。但请有人解释一下 比如说,我们在一个表中存储了一个图像(BLOB)。将该BLOB提取到代码(在.net中)中的数据表中,如下所示: 现在,BLOB是如何存储在byte[]image中的 我在互联网上搜索过,但什么也找不到。任何图像都只是一个字节序列,它的结构符合用于表示它的任何基本格式,例如颜色数据、图层、尺寸等。调试过程中看到的任何字节的意义都完全取决于图像的本机格式,例如PNG,TIFF、JPEG

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

比如说,我们在一个表中存储了一个图像(BLOB)。将该BLOB提取到代码(在.net中)中的数据表中,如下所示:

现在,BLOB是如何存储在byte[]image中的


我在互联网上搜索过,但什么也找不到。

任何图像都只是一个字节序列,它的结构符合用于表示它的任何基本格式,例如颜色数据、图层、尺寸等。调试过程中看到的任何字节的意义都完全取决于图像的本机格式,例如PNG,TIFF、JPEG、BMP等


希望这就是你想要的。如果你需要更具体的东西,请修改你原来的帖子,也许有人可以给你更多的细节。

任何图像都只是一个字节序列,按照用来表示它的任何基本格式(如颜色数据、图层、尺寸等)进行结构。任何字节的意义您可以看到,调试过程完全依赖于图像的本机格式,例如PNG、TIFF、JPEG、BMP等


希望这就是你想要的。如果你需要更具体的东西,请修改你原来的帖子,也许有人可以给你更多的细节。

图像通常是一个文件中由特定算法编码的颜色数组。我熟悉GIF图像格式。查看下图,查看一个红色“V”存储在白色背景中的示例。本例中的图像宽度为7像素,高度为4像素。每个图像都有一个颜色表,指示图像中使用的颜色数量。R标记的像素是红色的,w标记的像素是白色的

RwwwwwR
wRwwwRw
wwRwRww
wwwRwww

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

图像通常是由文件中特定算法编码的颜色数组。我熟悉GIF图像格式。查看下图,查看一个红色“V”存储在白色背景中的示例。本例中的图像宽度为7像素,高度为4像素。每个图像都有一个颜色表,指示图像中使用的颜色数量。R标记的像素是红色的,w标记的像素是白色的

RwwwwwR
wRwwwRw
wwRwRww
wwwRwww

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

我不确定您还不清楚什么,但这段代码可能会有所帮助

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

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

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

这个字节数组驻留在哪里?它是内存驻留还是磁盘上?图像格式是否支持透明度?回答这个问题需要更多的信息。@ManikandanSigamani你想知道它是什么格式吗?我想我不明白你的困惑是从哪里来的。在计算机上,几乎所有的东西都是以字节的形式存储的——无论是在磁盘、CD、DVD还是内存中。字节数组只是字节的集合。理论上,字节数组的内容将与使用十六进制编辑器查看磁盘上保存的相应图像的字节时看到的内容相同。也许这篇文章将帮助您概念化它是如何工作的@戴维斯特拉顿:谢谢你的链接,事实上,我是在为另一个问题伤脑筋,在这个问题上我很生气。再次感谢这个字节数组在哪里?它是内存驻留还是磁盘上?图像格式是否支持透明度?回答这个问题需要更多的信息。@ManikandanSigamani你想知道它是什么格式吗?我想我不明白你的困惑是从哪里来的。在计算机上,几乎所有的东西都是以字节的形式存储的——无论是在磁盘、CD、DVD还是内存中。字节数组只是字节的集合。理论上,字节数组的内容将与使用十六进制编辑器查看磁盘上保存的相应图像的字节时看到的内容相同。也许这篇文章将帮助您概念化它是如何工作的@戴维斯特拉顿:谢谢你的链接,事实上,我是在为另一个问题伤脑筋,在这个问题上我很生气。谢天谢地,阿加尼想知道为什么数据表的列不能是OracleLOB类型,突然,我发疯了。谢谢你的代码,这对你的帮助更大了。+1:@Manikandan-这里的关键位是ImageFormat.Jpeg。如果没有图像格式,字节就是字节。与字符串类似-如果没有编码,它只是字节,您无法理解它@bryanmac这个链接听起来很有趣,我很惭愧我还不知道。谢谢:)我想知道为什么dataTable的列不能是OracleLOB类型,突然,我发疯了。谢谢你的代码,这对你的帮助更大了。+1:@Manikandan-这里的关键位是ImageFormat.Jpeg。如果没有图像格式,字节就是字节。与字符串类似-如果没有编码,它只是字节,您无法理解它@bryanmac这个链接听起来很有趣,我很惭愧我还不知道。谢谢:)+1-对,没有格式的字节是无用的。本机格式有一个以字节为单位的布局算法。+1-对,没有格式,字节是无用的。本机格式有一个以字节为单位的布局算法。