在纯100%不压缩的情况下,一张1300万像素的照片占用多大内存?

珂珂346


答:对于一张1300万像素的24位图,在100%不压缩的情况下,所占内存大约是37.2M。


其中涉及计算机的储存原理,和色彩空间的相关知识;一般的手机直出图片,都是JPG格式,该格式的压缩比很大,如果采用RGB模式记录每个像素,每个像素就有2^24=1677.7 万种色彩。

在计算机中,每个比特(bit)表示二进制的“0”或者“1”:

(1)定义8个比特为一个字节,即1byte=8bit;

(2)1024(2^10)个字节为千字节,即1KB=1024byte;

(3)1024千字节为兆字节,即1MB=1024KB;

对于24位深度的图片,相当于用24个比特(3字节)长度来记录一个像素,每8个字节记录每个像素中的一种颜色(R、G、B)。

于是一张1300万像素,完全没有压缩的照片,所占内存为:

130000000*24bit=130000000*3byte

=39000000字节=37.19MB;

算上图片格式的开头信息,大概就是37.2M。


在各种图片格式中,BMP格式是Windows操作系统的标准图片格式,该格式就是100%没有压缩的位图,比如下面这张4000*3250(1300万像素)的24位BMP图片:


所占内存就是39059456字节(37.2MB),如果储存为JPG格式,图片压缩质量较高的情况下,所占内存只有3.5MB,看来JPG格式的压缩比还是挺高的。


我的内容就到这里,喜欢我们文章的读者朋友,记得点击关注我们——艾伯史密斯!


艾伯史密斯


我是用手机拍摄的,采用OPPOA57(别笑话,怎么用这么低端的手机摄影,哈哈)后置摄像头(1300万像素)拍摄后,显示尺寸:3455*4608,大小:2.99MB。(见下图数据)

但文件后缀名显示.jpg字样,说明保存在手机里的图片也是被压缩了的。


上面这张图片是采用OPPOA57前置摄像头高清模式(5000万像素)拍的,拍摄后显示尺寸:8320*6240,大小:15.13MB。(见下图,这当然不是原图了,15MB的图片是无法上传的)

当然,平常我一般都是采用前置摄像头5000万像素(有这么大吗???)拍摄,如果要发布图集的话,一般都会把这十几MB的图片压缩在5MB以下,才能上传上去。


好了,今天的话题,就先谈到这。

附录:存储单位换算表

1G=1024MB(兆)

1MB=1024KB

1KB=1024B(字节)

1TB=1024G


汉上生活圈


当我们把一张非纯色图片放大到无法放大时,我们可以看到的是有很多颜色不同的方块组成的,一个方块就代表图片中的一个像素点,由于被放大了我们才看到了单个的像素点!!




计算机时一种处理数字信号的设备,他能处理的只能是0和1两个二进制数!在计算机的世界里任何的图片,视频,文件都是以二进制存储表示的!实际上面的一个个方块也就是像素是由称为三原色的红绿蓝按照不同的亮度配比出来的,千千万万不同颜色的像素就组成了的图片!



三原色中每一个颜色用8位二进制数表示,红绿蓝就是24位二进制数!一个二进制数是1比特(bit),8个二进制数等于一个字节(Byte)!!

1MB=1024KB

1KB=1024Byte

我们来算下1300万像素的图片可以有多大?

13000000*3=39,000,000字节÷1024÷1024=37.1932983M

也就是说在100%不压缩的情况下,一张有1300万像素的图片大小是37.2MB!但实际我们无论是网上的图片还是我们自己拍摄的图片并没有这么大,是因为他们都是被压缩成为了JPG格式的图片!!因为原始图片过于庞大,网路传输并不快速!存储也很费空间!


风来了156


都回答什么跟什么,楼主是问不压缩的情况下1300万像素的图片有多大。

首先不压缩的情况下可以忽略图片格式,假设图片色彩深度是24位。那么就可以计算出1300万个像素点,占用多大空间。

计算机里1字节=8位,那么24位=3字节。

每个像素占用3字节的空间,1300万像素占用1300万X3字节=3900万字节(bit)≈37.19兆字节(Mb)。

一张图片不压缩就这么算。


要怎么理解呢?

我们先了解像素是怎样组成图片的。看看这张图。这张图片是放大的,放大到能看到单个像素,一个小框框代表一个像素。

一个像素用24位二进制表示颜色。转换成十进制就是16,777,216种颜色。几千几百万个像素点,就能组成我们现在看到的任何图片。

再细化,就是显示器上的单个液晶。每个像素包含3种颜色液晶。红、绿、蓝三基色组成1600万种颜色。

再再细化,单单个液晶。用8位表示明亮度,换算成十进制就是256。一个单液晶有256种亮度。明亮度不同融合其他两种颜色,最终人眼所看到的颜色也不同。




这就是颜色组成的原理。上面图片大多来自网络,违规告诉我一声,马上删。


新宇2490


这个问题很好回答,会Photoshop的同学,只需要调出来Ps建立一个1300万像素的画板就知道了:

1300万像素,就是一张图片总共有1300个基本像素点,这样,我们可以在Ps里面建立一个宽1300像素,高度10000像素的图像。这样合起来这个图像的像素就是1300万,建立之后,我们可以清晰地看到,Ps软件显示该图片大小是37.2M。如下图所示:

当然了,即便我们改变高度和宽度的像素值,但只要二者的乘积是13000000,其大小都是37.2M不会变。如下改成了宽度130psi(像素),高度1300000psi,结果还是37.2M:

那么接下来我们不借助软件,来看看计算机到底是如何存储图片以及为何图片大小是37.2M。

计算机是存储的基本单位是字节(byte),一个字节由8个二进制数字组成,所以一个字节的最大值就是2^8=256。而一个像素点就代表一种颜色,颜色在计算机里面是由RGB三原色合成的,即红(R)、绿(G)、蓝(B)。每个颜色值可以分成0-255个色度,这样一个像素点只需3个字节就可以表示了:一个字节代表R,一个代表G,一个代表B。

如此的话,1300万个像素点就需要:13000000*3=39000000byte。

根据1M=1024K=1024*1024Byte,可以得到39000000byte=37.1933M,计算机需要取大点的整数,所以最终会划分一个37.2M的空间给予这个照片。


科学探秘频道


手持D5300+18-200VR II,NEF格式下原图20-24MB不等,1300万像素算下来无压缩传感器原始数据保存下来之后应该在10-13MB左右,与所谓的RGB没有关系,那个是显示器的事,传感器输出数据之后由处理器合成具体的颜色数据直接就保存了,因为每一个像素点只有一个数据,这个数据在色彩系统(256位,16位,32位的SRGB或者AdobeRGB)里已经编好色号,不需要再去进行所谓的三原色数据保存,而你的图片里有多少像素点就需要多少数量的色彩记录信息(不谈压缩),所以1300万个像素点,就需要1300万哥个色彩记录信息,在AdobeRGB级传感器14级宽容度色彩记录方式下,每个色彩记录信息占用一个byte(不是bit,分清楚bit和byte,至于为什么只占用一个byte,请去问微软和adobe以及索尼尼康佳能卡尔蔡司施耐德莱卡),所以13 000 000个像素点,13 000 000个byte,差不多就是10-13MB(取决于你的操作系统是1024进制还是1000进制以及处理器保存数据时是否会进行少量数据压缩操作)....


AriesTheRealm


首先说,其他人说的要么是瞎扯,要么说个大约数如此等等。

再次说,这是一道数学题。

1300万像素的分辨率不知道是多少乘以多少,那我们就来算算1200万像素的。

1200万像素24位真彩无压缩:

3000*4000*3=36000000字节≈34.3323MB

1300万:

1300万像素24位真彩无压缩: 13000000*3=39000000字节≈37.2MB


朱鸿峰2


你说的是BMP格式的图片,一个像素由3个颜色组成,分别是红(R)绿(G)蓝(B),每个颜色一个字节,一个像素就是3个字节,比如白色的16进制表示就是ffffff,也就是说三种颜色都显示最亮的时候,人眼看到的就是白色。剩下的就是纯数学计算了,这里省略


笨小虎


得看是什么相机了,单反的话,1300万像素,一张JPEG精细的照片大概有10M 卡片机大概5M吧。占用内存不是固定的,得看照片拍摄的是什么场景,细节包含越多,照片就越大。



签约摄影师


一个像素颜色用六位十六进制数表示,如00FF00代表纯绿色(233),而一个十六进制位就是4个二进制位,6个十六进制就是24个二进制。计算机8个二进制位占用1bit,24个二进制位就是3bit,所以

1300万像素

=13000000×3bit

=39000000bit

=(39000000÷1024÷1024)MB

=37.1932983398MB.


分享到:


相關文章: