导航:首页 > 操作系统 > 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完整版演员表 浏览:985
空调压缩机为什么不能放到冷库用 浏览:87
江西云服务器节点虚拟主机 浏览:997
新氧app如何测试脸型 浏览:687
个税app如何查询社保 浏览:495
安卓设备快充什么时候开启的 浏览:13
ipad怎么用安卓手机传文件 浏览:584
编辑程序员视频 浏览:633
极光app的云助手在哪里 浏览:777
信合有什么ApP 浏览:957
android绝对位置 浏览:79
阿里巴巴校招程序员在哪个园区 浏览:905
呼吸的科学pdf 浏览:820
命令行打开网页文件 浏览:622
服务器软重启是什么意思 浏览:595
抖音小店自动邀约达人软件源码 浏览:376
java电子书源码 浏览:484
中日韩程序员 浏览:192
程序员纹身怎么设计 浏览:530