Bitmap物件在記憶體中的大小和轉化為位元組流的大小

2021-07-10 03:49:12 字數 741 閱讀 8557

檢視我的部落格原文:android – bitmap 記憶體管理

比如我們構造bitmap時設定寬200,高400,色彩模式為bitmap.config.argb_8888,那麼它在記憶體中的大小就為200*400*4,色彩模式為bitmap.config.rgb_565,那麼大小就是200*400*2,這些在記憶體中是固定大小的。

比如我們用bitmap.compress(bitmap.compressformat.png,100,fos);轉化為位元組流以後發現獲取的fos.tobytearray()變小了,這是因為進行了壓縮的緣故,相同寬高,不同的bitmap物件,壓縮以後大小是不一樣的,因為不同的bitmap色彩豐富程度不一樣,表達的資訊不一樣,最終能壓縮的大小也不一樣。

bitmap.compress壓縮是質量壓縮,是因為它不會減少的畫素。它是在保持畫素的前提下改變的位深及透明度等,來達到壓縮的目的。進過它壓縮的檔案大小會有改變,但是匯入成bitmap後佔得記憶體是不變的。因為要保持畫素不變,所以它就無法無限壓縮,到達乙個值之後就不會繼續變小了。所以我們發現有時候設定compress(compressformat format, int quality, outputstream stream)quality引數不起作用。

Bitmap在記憶體中載入

package com.danjiang.bitmapdemo import android.annotation.suppresslint import android.graphics.bitmap import android.graphics.bitmap.config import and...

C 物件在記憶體中的分布

c 通過class的pointers和references來支援多型,這種程式風格就成為 物件導向 一 c 對多型的支援的三種方式 1.把乙個派生類指標隱式轉換成乙個基類指標 ex shape ps new circle 2.經由virtual function機制 ex ps rotate 2.經...

OC 物件在記憶體中的儲存

棧 儲存區域性變數 堆 允許程式設計師手動在堆區申請指定的連續的位元組數的空間來使用 bss段 儲存未初始化的全域性變數,靜態變數 資料段 常量區 儲存已經初始化的全域性變數,靜態變數,常量資料 段 儲存程式的 當類第一次被訪問的時候,會將類儲存在 段中,這個過程叫做類載入.一旦類被載入到 區,直到...