Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Image 计算机如何将图像转换成二进制?_Image_Image Processing_Jpeg - Fatal编程技术网

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

Image 计算机如何将图像转换成二进制?,image,image-processing,jpeg,Image,Image Processing,Jpeg,计算机如何将彩色或黑白图像转换成二进制? 相反,二进制数据如何转换为图像?我的意思是问它实际上是如何处理图像数据的 你的问题涉及很多变量。位深度、颜色空间、压缩和存储格式 但基本思想是这样的 图像由像素组成。100x100大小的图像有10000像素。原始数据需要表示这些像素中每一个的颜色值。这就是位深度发挥作用的地方。如果每个像素只有1位,则只能表示两种颜色,例如,黑色和白色。这不会形成一个特别有趣的图像。你可以通过使用点画来欺骗眼睛看到阴影。早期的计算机使用4位颜色,最多可提供16种颜色,这只

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

你的问题涉及很多变量。位深度、颜色空间、压缩和存储格式

但基本思想是这样的

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

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

一旦你有了这些数据,你需要选择如何存储它。为了不丢失任何数据,您可以将其以最原始的格式存储—即:每一位。然而,这通常会产生大文件。例如:在32位时,一幅100x100像素的图像将占用40K的空间-还不错。。。但是一帧高清晰度的画面呢?1920x1080像素x 32位?略低于8MB。在这个尺寸下,1秒的镜头将占用大约200MB——一整部电影超过1TB。这就是压缩的用武之地

压缩是一个非常重要的话题,但让我们看一个非常简单的例子。如果我们尝试减少必须存储的位的数量会怎么样?我们可以将许多非常相似的颜色转换成相同的颜色——这是过去在网络上经常做的事情。人们以8位GIF格式存储图像。随着位深度的减少,它们占用的空间会小得多,但这取决于图像的复杂程度,通常会导致不理想的视觉效果,渐变最终会出现条纹,或者照片看起来像像素

希望这能让您对图像的存储方式有一点了解。查看维基百科-这里有更多关于我在这里提到的所有主题的深入信息。这里有一个很好的起点: