導航:首頁 > 操作系統 > androidbitmap獲取像素

androidbitmap獲取像素

發布時間:2025-02-09 18:24:01

A. bitmap璁劇疆鍥劇墖澶у皬-Android鍐呭瓨浼樺寲浜旓細Bitmap浼樺寲

C#wpfBitmapImage浠庢湰鍦拌祫婧愯幏寰楁湭鐭ュ儚緔犲ぇ灝忕殑鍥劇墖錛屽備綍灝嗗叾瀵硅薄璁句負鎸囧畾澶у皬

涓鑸鏉ヨ翠竴涓鐐硅綺劇『鐨勮ゅ畾涓1/72鑻卞,鍦╓PF涓,閲囩敤鐨勮懼囨棤鍏沖崟浣嶅嵆1/96鑻卞

鎵浠ョ▼搴忎腑鑾峰彇鐨勫浘鐗囧ぇ灝忔瘮鐪熷疄鍥劇墖鐨勫ぇ灝忚佸ぇ涓鐐,鑾峰彇鍒板浘鐗囧ぇ灝忓悗榪涜岀浉搴旂殑杞鎹㈠嵆鍙鑾峰緱鍥劇墖鍘熸潵鐨勫昂瀵稿:height=height*72/96

bmp鍏ㄥ睆鎴鍥懼ぇ灝

800*480銆傚湪浠繪剰浣嶇疆鏄劇ず浠繪剰澶у皬bmp鍥劇墖澶存枃浠,鏅閫氬叏灞800*480鏄劇ずbmp,瀹規槗鍒嗘瀽銆侭MP(鍏ㄧОBitmap)鏄疻indows鎿嶄綔緋葷粺涓鐨勬爣鍑嗗浘鍍忔枃浠舵牸寮,鍙浠ュ垎鎴愪袱綾:璁懼囨湁鍚戦噺鐩稿叧浣嶅浘(DDB)鍜岃懼囨棤鍚戦噺鐩稿叧浣嶅浘(DIB),浣跨敤闈炲父騫褲

Android鍐呭瓨浼樺寲浜旓細Bitmap浼樺寲

Android鍐呭瓨浼樺寲涓:java鍨冨溇鍥炴敹鏈哄埗

Android鍐呭瓨浼樺寲浜:鍐呭瓨娉勬紡

Android鍐呭瓨浼樺寲涓:鍐呭瓨娉勬紡媯嫻嬩笌鐩戞帶

Android鍐呭瓨浼樺寲鍥:OOM

Android鍐呭瓨浼樺寲浜:Bitmap浼樺寲

鍘嬬緝姣:scale=(flaot)targetDensity/density

targetDensity:璁懼囧睆騫曞儚緔犲瘑搴dpi

density:鍥劇墖瀵瑰簲鐨勬枃浠跺す鐨勫儚緔犲瘑搴dpi

1)銆佸悓涓寮犲浘鐗囨斁鍦ㄤ笉鍚岀殑璧勬簮鐩褰曚笅,鍏跺垎杈ㄧ巼浼氭湁鍙樺寲銆

2)銆丅itmap鐨勫垎杈ㄧ巼瓚婇珮,鍏惰В鏋愬悗鐨勫介珮瓚婂皬,鐢氳嚦灝忎簬鍘熸湁鐨勫浘鐗(鍙婄緝鏀),浠庤屽唴瀛樹篃鍝嶅簲鐨勫噺灝戙

3)銆佸浘鐗囦笉鏀劇疆浠諱綍璧勬簮鐩褰曟椂,鍏朵嬌鐢ㄩ粯璁ゅ垎杈ㄧ巼mdpi:160銆

4)銆佽祫婧愮洰褰曞垎杈ㄧ巼鍜屽睆騫曞垎杈ㄧ巼涓鑷存椂,鍥劇墖灝哄鎬笉浼氱緝鏀俱

Bitmap鏀懼湪璧勬簮鐩褰曚腑鐨勮$畻鏂瑰紡涓:

涓昏侀氳繃緙栫爜銆侀噰鏍楓佸嶇敤銆佸尶鍚嶅叡浜鍖鴻繘琛屼紭鍖

鐢變簬ARGB_4444鐨勭敾璐ㄦ儴涓嶅繊鐫,涓鑸鍋囧傚瑰浘鐗囨病鏈夐忔槑搴﹁佹眰鐨勮瘽,鍙浠ユ敼鎴怰GB_565,鐩告瘮ARGB_8888灝嗚妭鐪佷竴鍗婄殑鍐呭瓨寮閿

鍏朵腑,A浠h〃閫忔槑搴;R浠h〃綰㈣壊;G浠h〃緇胯壊;B浠h〃钃濊壊銆

ALPHA_8琛ㄧず8浣岮lpha浣嶅浘,鍗矨=8,涓涓鍍忕礌鐐瑰崰鐢1涓瀛楄妭,瀹冩病鏈夐滆壊,鍙鏈夐忔槑搴︺

ARGB_4444琛ㄧず16浣岮RGB浣嶅浘,鍗矨=4,R=4,G=4,B=4,涓涓鍍忕礌鐐瑰崰4+4+4+4=16浣,2涓瀛楄妭銆

ARGB_8888琛ㄧず32浣岮RGB浣嶅浘,鍗矨=8,R=8,G=8,B=8,涓涓鍍忕礌鐐瑰崰8+8+8+8=32浣,4涓瀛楄妭銆

RGB_565琛ㄧず16浣峈GB浣嶅浘,鍗砇=5,G=6,B=5,瀹冩病鏈夐忔槑搴,涓涓鍍忕礌鐐瑰崰5+6+5=16浣,2涓瀛楄妭銆

bitmap鐨勫崰鐢ㄥ唴瀛,鏄浠bitmap鐨勫介珮鍜屾瘡涓鍍忕礌鍗犵敤鐨勫瓧鑺傛暟鍐沖畾鐨勩

鏍規嵁BitmapFactory鐨勯噰鏍風巼榪涜屽帇緙╄劇疆閲囨牱鐜,涓嶈兘灝忎簬1鍋囧傛槸2鍒欏戒負涔嬪墠鐨1/2,楂樹負涔嬪墠鐨1/2,涓鍏辯緝灝1/4浠ユょ被鎺

鍥劇墖澶嶇敤鎸囩殑鏄痠nBitmap榪欎釜灞炴с

涓嶄嬌鐢ㄨ繖涓灞炴,浣犲姞杞戒笁寮犲浘鐗,緋葷粺浼氱粰浣犲垎閰嶄笁浠藉唴瀛樼┖闂,鐢ㄤ簬鍒嗗埆鍌ㄥ瓨榪欎笁寮犲浘鐗

濡傛灉鐢ㄤ簡inBitmap榪欎釜灞炴,鍔犺澆涓夊紶鍥劇墖,榪欎笁寮犲浘鐗囦細鎸囧悜鍚屼竴鍧楀唴瀛,鑰屼笉鐢ㄥ紑杈熶笁鍧楀唴瀛樼┖闂淬

inBitmap鐨勯檺鍒:

1銆3.0-4.3

澶嶇敤鐨勫浘鐗囧ぇ灝忓繀欏葷浉鍚

緙栫爜蹇呴』鐩稿悓

2銆4.4浠ヤ笂

澶嶇敤鐨勭┖闂村ぇ浜庣瓑浜庡嵆鍙

緙栫爜涓嶅繀鐩稿悓

3銆佷笉鏀鎸乄ebP

4銆佸浘鐗囧嶇敤,榪欎釜灞炴у繀欏昏劇疆涓簍rue;

=true;

Android緋葷粺涓轟簡榪涚▼闂村叡浜鏁版嵁寮杈熺殑涓鍧楀唴瀛樺尯鍩,鐢變簬榪欏潡鍖哄煙涓嶅彈搴旂敤鐨凥ead鐨勫ぇ灝忛檺鍒,鐩稿綋浜庡彲浠ョ粫寮oom,FaceBook鐨凢resco棣栨″簲鐢ㄥ埌瀹為檯涓銆

闄愬埗:5.0浠ュ悗灝遍檺鍒朵簡鍖垮悕鍏變韓鍐呭瓨鐨勪嬌鐢ㄣ

鍦⊿DK11->18涔嬮棿,閲嶇敤鐨刡itmap澶у皬蹇呴』鏄涓鑷寸殑,渚嬪傜粰inBitmap璧嬪肩殑鍥劇墖澶у皬涓100-100,閭d箞鏂扮敵璇風殑bitmap蹇呴』涔熶負100-100鎵嶈兘澶熻閲嶇敤銆備粠SDK19寮濮,鏂扮敵璇風殑bitmap澶у皬蹇呴』灝忎簬鎴栬呯瓑浜庡凡緇忚祴鍊艱繃鐨刡itmap澶у皬銆傛柊鐢寵風殑bitmap涓庢棫鐨刡itmap蹇呴』鏈夌浉鍚岀殑瑙g爜鏍煎紡,渚嬪傚ぇ瀹墮兘鏄8888鐨,濡傛灉鍓嶉潰鐨刡itmap鏄8888,閭d箞灝變笉鑳芥敮鎸4444涓565鏍煎紡鐨刡itmap浜嗐傛垜浠鍙浠ュ壋寤轟竴涓鍖呭惈澶氱嶅吀鍨嬪彲閲嶇敤bitmap鐨勫硅薄奼,榪欐牱鍚庣畫鐨刡itmap鍒涘緩閮借兘澶熸壘鍒板悎閫傜殑鈥滄ā鏉庫濆幓榪涜岄噸鐢ㄣ

8.0Bitmap鐨勫儚緔犳暟鎹瀛樺偍鍦∟ative,涓轟粈涔堝張鏀逛負Native瀛樺偍鍛?

鍥犱負8.0鍏變韓浜嗘暣涓緋葷粺鐨勫唴瀛,嫻嬭瘯8.0鎵嬫満濡傛灉涓鐩村壋寤築itmap,濡傛灉鎵嬫満鍐呭瓨鏈1G,閭d箞浣犵殑搴旂敤鍔犺澆1G涔熶笉浼歰om銆

鍙浠ュ埄鐢↙RU寮綆$悊Bitmap,緇欎粬璁劇疆鍐呭瓨鏈澶у,鍙婃椂鍥炴敹銆

BitmapRegionDecoder

B. Android 圖片載入(一)高效載入Bitmap 基礎篇

由於Bitmap的特殊性以及Android對單個應用所規定的最大內存限制,我們在同時載入大量Bitmap時很容易發生內存溢出,即我們通常所說的OutOfMemoryError(OOM),因此高效載入Bitmap就成為了每個Android開發者的必備技能。

在學習如何高效地載入Bitmap之前,首先介紹一下如何載入一個Bitmap。我們都知道,Bitmap在Android中通常指的是一張圖片,那麼如何將JPG、PNG等格式的圖片轉換成Bitmap對象呢?BitmapFactory類給我們提供了一些方法:

接下來開始介紹如何高效地載入Bitmap,其實核心思想很簡單: 就是採用BitmapFactory.Options參數來調整圖片尺寸來適配控制項的大小。

假如我們顯示圖片的控制項ImageView寬高為100×100像素,而圖片的尺寸為1024×1024像素,這個時候如果將整個圖片載入進來並顯示到控制項上,自然是很佔用內存資源的。這個時候可以通過BitmapFactory.Options按一定的采樣率載入縮小後的圖片,再將縮小後的圖片顯示到ImageView中,這樣就能減小內存佔用從而在一定程度上避免OOM的發生。

通過BitmapFactory.Options來縮放圖片,主要是使用它的inSampleSize參數,也就是前面提到的采樣率。當采樣率inSampleSize為1時,采樣後的圖片大小為原圖大小;當采樣率inSampleSize>1,比如為2時,采樣後的圖片寬高都為原圖的1/2,即像素降為原圖的1/4,佔用的內存大小也就是原圖的1/4;比較特殊的是,當采樣率inSampleSize<1時,系統會自動將該值當做1來處理。 因此可以得出一個結論:采樣率inSampleSize必須是大於1的整數圖片才會有縮小的效果,並且采樣率同時作用於寬高,也就是說采樣後的圖片會縮小到原圖的1/(inSampleSize^2)。比如inSampleSize=4,那麼縮放比例為1/16。

我們現在知道了,通過采樣率可以提高圖片的載入效率,那麼如何才能計算出最合適的采樣率?我們可以按照如下流程:

接下來以decodeFile方法為例實現圖片的縮放,其他三個方法處理方式類似。

下一篇: Android 圖片載入(二)圖片載入框架Glide 入門篇

《Android開發藝術探索》

C. Android中一圓環圖片,圓環上某一圈坐標點算出來,獲取圖片上的像素值,報錯

public void getPixColor(int imhg){
Bitmap src = BitmapFactory.decodeResource(getResources(),imhg);
int A, R, G, B;
int pixelColor;
int height = src.getHeight();
int width = src.getWidth();

for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
pixelColor = src.getPixel(x, y);
A = Color.alpha(pixelColor);
R = Color.red(pixelColor);
G = Color.green(pixelColor);
B = Color.blue(pixelColor);
if (R>0||G>0||B>0){
tv_tilte2.setTextColor(Color.rgb(R,G, B));
}

}
}

}

D. 性能優化:Android中Bitmap內存大小優化的幾種常見方式

Android中優化Bitmap內存大小是提升應用性能的關鍵步驟。Bitmap佔用內存大小的計算遵循其配置(Bitmap.Config)和大小。默認配置下,每個像素佔用4位元組。因此,優化主要通過調整寬度、高度或配置來減少內存消耗。

優化策略包括:

1. **采樣率壓縮**:通過改變采樣率來縮小Bitmap大小,以此降低內存需求。例如,將原圖大小從640px * 360px縮小至1/4,內存佔用相應減少至原來的1/16。該方法適用於原有圖片寬高過大、目標尺寸較小的情況,避免了不必要的內存浪費。

2. **矩陣壓縮**:使用Bitmap.createBitmap或Bitmap.createScaledBitmap方法進行縮放。設定縮放比例後,內存佔用減少至原圖的1/100。適用於原圖大小和目標Bitmap尺寸已知的情況。

3. **更改配置**:將默認的Bitmap.Config.ARGB_8888改為佔用位元組更少的配置,如ARGB_4444或RGB_565。對於非透明度要求高的圖像,使用RGB_565更為合適。此方法適用於對圖像解析度要求不高的場景。

4. **質量壓縮**:通過Bitmap.compress方法調整quality參數來減小生成的位元組流大小,而不影響Bitmap內存佔用。此方法在保持圖像質量的同時,減小了圖像的位深、透明度等,適用於需要傳遞二進制圖片數據的場景,如微信分享。

在實際開發中,應根據具體需求選擇合適的優化策略。優化Bitmap內存大小不僅能夠提升應用的性能和響應速度,還能有效避免內存溢出問題。

閱讀全文

與androidbitmap獲取像素相關的資料

熱點內容
寧波鮑斯壓縮機 瀏覽:93
新建文件夾電影2完整版演員表 瀏覽:987
空調壓縮機為什麼不能放到冷庫用 瀏覽:89
江西雲伺服器節點虛擬主機 瀏覽:997
新氧app如何測試臉型 瀏覽:688
個稅app如何查詢社保 瀏覽:495
安卓設備快充什麼時候開啟的 瀏覽:13
ipad怎麼用安卓手機傳文件 瀏覽:584
編輯程序員視頻 瀏覽:633
極光app的雲助手在哪裡 瀏覽:777
信合有什麼ApP 瀏覽:957
android絕對位置 瀏覽:79
阿里巴巴校招程序員在哪個園區 瀏覽:905
呼吸的科學pdf 瀏覽:820
命令行打開網頁文件 瀏覽:622
伺服器軟重啟是什麼意思 瀏覽:595
抖音小店自動邀約達人軟體源碼 瀏覽:376
java電子書源碼 瀏覽:484
中日韓程序員 瀏覽:192
程序員紋身怎麼設計 瀏覽:530