为什么图像由字节数组表示?

时间:2011-01-02 18:24:05

标签: .net image-processing bytearray

我正在阅读Scott Guthrie的博客,我遇到了一个样本。您可以在Here

中找到它

使用字节数组表示该样本中的Picture。我不知道为什么它由字节数组表示。我还记得一些文件也在.NET Framework中作为字节数组处理。

有人可以向我解释为什么字节数组而不是字符串甚至是一个保存图片的类吗?

3 个答案:

答案 0 :(得分:5)

图像是二进制数据 - 这很容易表示为字节数组。

示例中的图像作为BLOB存储在数据库中 - 而不是字符串或位置,即它是二进制数据。

答案 1 :(得分:3)

字节集合是将图像文件表示为数据的最简单方法。字符串不适合,因为它包含字符代码,图像文件不包含字符。没有用于保存图像文件数据的特殊类,因为字节数组可以正常工作。

任何文件都可以视为字节集合,因此字节数组是将文件作为二进制数据读取的结果。文件也可以解码为特定格式,如产生字符串的文本文件,或压缩图像格式(JPEG,GIF,PNG等),这会导致包含解压缩的Bitmap对象图像。

答案 2 :(得分:1)

将一个位图作为RGB值数组处理。例如,担心每个像素,每个值R,G和B被编码为一个字节。您还可以使用透明度的第四个值。

使用颜色/透明度索引,像素的x坐标和获取像素在y坐标的图像宽度...因此可以快速访问整个图像,价格便宜一些乘法和一个数组运算符[]调用。

如今,在处理图像时效率可能仍然是一个问题(对每个像素进行大量工作,这意味着图像内容上有很多很多循环)。

这可以解释图像仍然通过字节数组来处理。