1. 一張圖片佔用多少內存
https://www.cnblogs.com/popfisher/p/6959106.html
https://www.cnblogs.com/dasusu/p/9789389.html
(以上兩篇博客很不錯)
我們先假設我們有一張圖片時 600 * 800 的,圖片佔用空間大小假設是 100KB 。
圖片內存大小跟佔用空間大小有什麼關系?
佔用空間的大小不是圖片佔用內存的大小,一些初學者可能會誤解一下。佔用空間是在磁碟上佔用的空間,內存大小是載入到內存中佔用的內存大小。兩個只是單位是一樣的,本質不是一個概念。
一張圖片到底佔用多少內存呢?
1. 圖片佔用內存的計算公式: 圖片高度 * 圖片寬度 * 一個像素佔用的內存大小
2. 所以上面的圖片佔用內存是: 800 * 600 * 4 byte = 1875KB = 1.83M
當圖片放在 res 內的不同目錄中時,為什麼最終圖片載入進內存所佔據的大小會不一樣呢?
如果你們去看下Bitmap.decodeResource()源碼,你們會發現,系統在載入 res 目錄下的資源圖片時,會根據圖片存放的不同目錄做一次解析度的轉換,而轉換的規則是:
新圖的高度 = 原圖高度 * (設備的 dpi / 目錄對應的 dpi )
新圖的寬度 = 原圖寬度 * (設備的 dpi / 目錄對應的 dpi )
目錄名稱與 dpi 的對應關系如下,drawable 沒帶後綴對應 160 dpi:
所以,我們來看下序號 2 的實驗,按照上述理論的話,我們來計算看看這張圖片的內存大小:
轉換後的解析度:1080 * (240/160) * 452 * (240/160) = 1620 * 678
同一圖片,在同一台設備中,如果圖片放在 res 內的不同資源目錄下,那麼圖片佔用的內存空間是會不一樣的
同一圖片,放在 res 內相同的資源目錄下,但在不同 dpi 的設備中,圖片佔用的內存空間也是會不一樣的
圖片優化
所以,如果單從圖片本身考慮優化的話,也就只有兩個方向:
總結
最後,來稍微總結一下:
的
2. 圖片內存大小計算
圖片內存大小 和 圖片文件佔用空間大小 是沒有必然關系,但是一般來說圖片文件大小,圖片內存大小就越大。佔用空間是在磁碟上佔用的空間,內存大小是載入到內存中佔用的內存大小。
現在假如有一個圖片是600*800的,文件大小100KB。
圖片內存大小的計算公式是 : 圖片高度 * 圖片寬度 * 一個像素佔用的位元組數
也就是 600 * 800 * 4 byte = 1875KB = 1.83M
而一個像素佔用的位元組數與圖片的編碼格式(或者叫bitmap在內存中的存儲形式)有關
自然是位數越多顯示的效果越好
在Android中,圖片的存放目錄和手機的屏幕密度影響圖片最終的大小,舉個例子:
假設我們的圖片放到xhdpi目錄下,那麼我們本文中的圖片佔用的內存大小如下:
屏幕密度為2的設備:800 * 600 * 4byte = 1.83M
屏幕密度為3的設備:800 * 1.5 * 600 * 1.5 * 4byte = 1.83 * 2.25M = 4.12M
所以,計算圖片佔用內存大小的時候,要考慮圖片所在的目錄跟設備密度,這兩個因素其實影響的是圖片的高寬,android會對圖片進行拉升跟壓縮。
3. 一張照片占內存大約有多大
圖片有大有小有的一張都有1M有的只有幾十Kb,所以相差很大的,越清晰的像素越大的圖片也就越大。
4. 895張照片占內存多少
1G左右。
照片佔多少內存主要還是看照片單張是多少MB,在當今,手機拍攝的一張高清照片的尺寸大概在2MB左右,如果是以前的圖片或者是網圖,一張可能才幾十KB,那麼895張圖片佔100MB也不是沒有可能。
內存容量是指該內存條的存儲容量,是內存條的關鍵性參數。計算機的內存容量通常是指隨機存儲器(RAM)的容量,是內存條的關鍵性參數。
5. 一張照片占內存大約有多大
相片的大小是根據照片的解析度來計算的。
解析度越高則相片體積越大,按家用相片尺寸來計算一般從低至30萬像素(10kb-30kb內存),高至800萬(3mb-5mb)不等。
(5)一個圖片是多少內存擴展閱讀:
照片大小決定於解析度。而解析度是指圖像中存儲的信息量,是每英寸圖像內有多少個像素點。
照片解析度的方法有很多種,這主要取決於不同的用途。圖像解析度的表達方式也為「水平像素數×垂直像素數」,也可以用規格代號來表示。
除圖像解析度這種叫法外,也可以叫做圖像大小、圖像尺寸、像素尺寸和記錄解析度。
6. 一張圖片占內存多少
應該是1.53m吧,彩色圖像一個像素內存是3位元組,680*750*3byte=1.53m
7. 一張圖片所佔內存是如何計算的
Bitmap.Config 表示圖片像素類型,包括ALPHA_8、RGB_565、ARGB_4444、ARGB_8888
其中 A表示透明度;RGB分別是Red、Green、Blue,三種原色
1.在不考慮屏幕解析度和res文件夾解析度的情況下:
一張圖片(BitMap)佔用的內存=長 * 寬 * 每個像素點的大小
例如:一張圖片寬1080 ,高 452
那麼,這張圖片的大小按照這個公式應該是:1080 * 452 * 4B = 1952640B ≈ 1.86MB
2.考慮屏幕解析度和res文件夾解析度的情況下:
系統在載入 res 目錄下的資源圖片時,會根據圖片存放的不同目錄做一次解析度的轉換。
新長 = 原長 * (設備的 dpi / 目錄對應的 dpi )
新寬 = 原寬 * (設備的 dpi / 目錄對應的 dpi )
一張圖片(BitMap)佔用的內存= 新長 * 新寬 * 每個像素點的大小
8. 一張圖片佔多大內存怎麼算
圖像文件的位元組數=圖像解析度*顏色深度/8
不知道你的深度是多少,一般是24
680X750X24/8=1530000位元組
1530000/1024=1494KB
1494/1024=1.46MB
以上只是基本原理演算法
格式不同文件壓縮品質也就是不同的。
9. 一張高清相片佔多大內存
只是高清(1920*1080)圖片的話只是幾百Kb,換成我們平時說的像素的話只有100多萬而已。一般700-1000萬像素的照片只有3Mb左右的大小。LZ想問的是相機照片的無損格式RAW的大小吧,這種格式因為是相機直接對景物的攝取並沒有經過相機的加工所以畫質較好,一般在12-20Mb左右。希望我的答案對LZ有用
10. 一張照片占內存大約有多大
幾MB吧。我的手機2992×4000px的,一張2.75MB左右。