计算机如何将图像转换为二进制?

Mot*_*med 2 jpeg image image-processing

计算机如何将彩色或黑白图像转换为二进制?相反,如何将二进制数据转换为图像?我的意思是问它如何实际处理图像数据?

Mat*_*olt 11

您的问题涉及许多变量.位深度,色彩空间,压缩和存储格式.

但基本的想法有点像这样.

图像由像素组成.100x100尺寸的图像有10,000像素.原始数据需要表示每个像素的颜色值.这是比特深度发挥作用的地方.如果每个像素只有1位,则只能表示两种颜色 - 例如,可能是黑色和白色.这不会成为一个特别有趣的形象.你可以通过使用点画来欺骗眼睛看到阴影.早期的计算机使用4位颜色,最多提供16种颜色,这是一个开始,但8位颜色证明更有趣,允许256种颜色.随着计算机硬件的改进,每像素的位数增加--16位(65,536种颜色),最后是24位(1600万种颜色).

接下来是色彩空间.这描述了颜色信息如何存储在这些位中.例如 - 许多系统使用32位不仅存储颜色的红色,绿色和蓝色分量,还存储alpha级别(透明度).一个基本的例子是ARGB色彩空间/模型 - 前8位是alpha,然后是红色,绿色和蓝色(每个8位).

获得此数据后,您需要选择存储方式.为了不丢失任何数据,您可以将其存储为最新格式 - 即:每一位.但这通常会导致大文件.例如:在32位时,100x100像素图像将占用40K - 不是太糟糕......但是单帧高清画面呢?1920x1080像素x 32位?略低于8MB.在那个尺寸1秒的镜头将占用大约200MB - 整个电影超过1TB.这就是压缩的来源.

压缩是一个非常大的主题 - 但让我们看一个非常简单的例子.如果我们尝试减少必须存储的位数怎么办?我们可以将许多非常相似的颜色转换成相同的颜色 - 这是以前在网上做了很多的事情.人们以8位GIF格式存储图像.随着位深度的减小,它们占用的空间要小得多,但是根据图像的复杂程度,它往往会导致不太理想的视觉效果,渐变最终会出现条纹 - 或者照片会看起来像素化.

希望这能让您对图像的存储方式有所了解.结帐维基百科 - 我在这里触及的所有主题都有更多深入的信息.这是一个很好的起点:http://en.wikipedia.org/wiki/Color_depth