日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

图片在内存中的占用的空间大小

發布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 图片在内存中的占用的空间大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個話題有點底層了

由于在開發當中尤其是在嵌入式設備開發當中,我們對內容使用要求很高,如Android的設備在開發過程中,我們在加載圖片資源的時候,如果圖片資源使用不合理經常會出現內存溢出的問題(安卓里面叫做 om(out memory) ios里面叫 內存過大),這個問題很是讓人頭疼。所以我們如果想要更好的把控內存的使用,因此了加載一個圖片(Bitmap對象)會占用多少內存就顯得至關重要。

下面我們就以Android的設備為例來講述,首先我們要了解一下圖片在內存中是什么樣子的存在。其實無論什么樣圖片在讀到內存中就是一個矩陣模型的數據,無論在外存(機身存儲或sd卡等)中是以jpg、png或者其他格式的圖片讀到內存中都是一樣的,它在對內存的占用只與該圖片的分辨率、像素模式(ARGB、RGB)、像素位數(8位、16位、32位等,其中我們通常使用的是8位的像素及0-255或0x00-0xFF)。我們圖片在內存中的大小是由這三個要素決定。

如100x100的png圖片

分辨率為100x100

像素模式為ARGB(支持透明度,A就是Alpha透明度),就是一個像素需要使用四個基色表示。

像素位數:通常為8位 0-255

圖片所占內存大小則是:100x100x4x8/8=40000Byte 不到40KB

大致的計算方式就是上面所講的。所以在使用圖片的時候尤其是圖片分辨率比較大的時候就要注意內存的使用情況,盡可能的使用多少圖片就用多少,用不到的就是釋放掉;

還有特別注意的就是:在使用畫布畫圖的時候生成的畫布不要太大,大小分辨率夠用即可如果太大,有可能光一個畫布就直接把內存給占完了。加入我們生成一個10240x10240分辨率的畫布所占內存就是400MB,所以對畫布的使用一定要慎重。
————————————————

1024 * 1024 像素的 是 400m

假設 iphone上 放一張 圖片 ,計算方法也是一樣的, 但是如果給出圖片是 1024 * 1024 點 的 大小,那么這個圖片顯示到屏幕所消耗的內存還與 屏幕的 倍數有關, 比如 6 是 @2X的 也就是說 一個點 占 2 * 2 = 4個像素,這樣來看 在蘋果6 上1024 * 1024點 =1024 * 1024 * 4(4倍的點才是像素) * 4(四個基色) * 8 /8 byte = 16m

分析可能有漏洞,僅供參考,歡迎評論區討論

參考鏈接:https://blog.csdn.net/w1144054497/article/details/50903285/

總結

以上是生活随笔為你收集整理的图片在内存中的占用的空间大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。