Android之图片Bitmap的特殊处理

Bitmap绘制颜色过滤 Bitmap绘制,包括颜色过滤矩阵,光照、混合模式。并设置染色模式。 立即下载

最近在做一个功能开发:当手指触摸屏幕的时候就出现一种特效。这里需要要五颜六色的图片来实现很绚丽效果,今天我来讲讲如何用一个简单图片如图(1)来实现如图(2)的效果!

 

(图1)
                

 

                                                    (图2)


       由上面的(图1)可以知道其中的图象实际上是没有颜色的,其实就是白色和透明度来绘制的四个圆的效果图片!怎么才能实现右边图片的五颜六色的圆的图像呢!这里就是设计到了对bitmap图片处理!下面是对bitmap图片改变颜色的处理方法:

	public static Bitmap change_bitmap_for_curr_color(Bitmap curr_Bitmap, int new_color){
		if(null == curr_Bitmap){
			return curr_Bitmap;
		}
		int BLACK_COLOR = 0xff000000;
	
		int start_x = 0;
		int statr_y = 0;
		int bitmap_w = curr_Bitmap.getWidth();
		int bitmap_h = curr_Bitmap.getHeight();
		//Log.d("yu", "FingerMagic_tool change_bitmap_for_curr_color new_color="+new_color);//0xFFFF0000
		new_color &= 0x00ffffff;/× 去掉要改变颜色的透明度,这里只是改变该图片颜色,其透明度不改变 ×/
		//Log.d("FingerMagic_tool", "FingerMagic_tool change_bitmap_for_curr_color new_color="+new_color);
		int []pixels = new int[bitmap_w * bitmap_h]; 
		curr_Bitmap.getPixels(pixels, 0, bitmap_w, 0, 0, bitmap_w,bitmap_h);/× 这里是取出要改变bitmap的像素数据 ×/
		int alph = 0;
		int color_int = 0;
		int curr_index = 0;
		for(int i = 0; i < bitmap_h; i++){/× 这里就是改变取出的bitnap的像素数据,是其颜色是我们要改变的颜色 ×/
			for(int j = 0; j < bitmap_w; j++){
				curr_index = bitmap_w * i + j;
				color_int = pixels[curr_index];
				if(0 == color_int){  /× 如果该像素点没有颜色,全透明则不处理 ×/
					continue;
				}
				alph = color_int & BLACK_COLOR;  /× 取出该像素点的透明度值 ×/
				if(alph == 0){/× 如果这个像素点是全透明的则不做处理 ×/
					continue;
				}
				color_int = new_color | alph;/× 把我们需要的颜色加上该像素点的透明度来取代原来的像素点 ×/
			
				pixels[curr_index] = color_int;
			}

		}

                <pre name="code" class="java">                 /× 最后利用我们修改完成的像素数据值来创建我们需要的图片 ×/ 
		Bitmap result = Bitmap.createBitmap(pixels, bitmap_w, bitmap_h, Config.ARGB_8888);
		//result.setPixels(pixels, 0, bitmap_w, 0, 0, bitmap_w, bitmap_h);

		return result;
	}


   

      这就可以了!所有的关键点,我都加上注释了。

     不过,对于上面的代码还是存在缺陷的,请不要用来处理超大的bitmap, 很有可能溢出哦!还有,如果处理不只一个小图片,请开辟线程来处理哦。


Android对图片进行特效处理的代码例子 Android对图片进行特效处理的代码例子。用于演示各种图片特效效果,包括:怀旧、光照、光晕、底片、浮雕、模糊、锐化、黑白、冰冻、素描等等。 立即下载

相关推荐

android图片处理(压缩,保存,截屏,view转化为bitmap)相关函数 ImageUtils

android图片处理(压缩,保存,截屏,view转化为bitmap)相关函数 ImageUtils

安卓:图片反色

安卓实现图片反色

海天鹰 604

android Bitmap 图像特效处理

在Android编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的效果,有时候还要对图片进行变换,以拉伸,扭曲等等。这些效果在Android中有很好的支持,通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果,下面将分别介绍这两个矩阵的用法和相关的函数。

Android平台实现位图(Bitmap)的序列化和反序列化

  对象被序列化后可被保存或传输,这个例子实现了位图的序列化和反序列化。   这次就对Android工程自带的”icon.png”进行下手。   程序运行后会在/data/data/breakan.serializable/目录下生成一个bitmap.bin文件,这个文件保存的就是MyBitmap的对象。    1 packa...

weixin_30394333的博客 155

视觉特效简单实现

主要实现了下拉的时候图片有一个回弹的效果,但是我在虚拟机上面运行的时候,不知道为什么不是那么明显

告别手动点鼠标:用Python脚本批量跑ADS版图仿真,效率提升10倍(附完整代码)

本文详细介绍了如何利用Python脚本自动化ADS版图仿真流程,显著提升射频工程师的工作效率。通过调用ADS底层接口,实现参数化修改、批量任务调度和结果自动收集,解决了手动操作中的常见问题,如仿真不更新等。附完整代码,帮助开发者快速实现10倍效率提升。

weixin_42523543的博客 332

 Android--Bitmap灰度、二值化、反转颜色

一.灰度图 /** * 将彩色图转换为灰度图 * * @param img 位图 * @return 返回转换好的位图 */ public static Bitmap convertGreyImg(Bitmap img) { int width = img.getWidth(); //获取位图的...

赵雷 5393

Quartus Prime 软件 USB-blaster 驱动安装失败【已解决】

一、安装步骤 1、将FPGA 开发板插入电脑时,未安装驱动的电脑会提示安装usb-Blaster驱动。Windows搜索框打开设备管理器,在“其他设备”下会发现黄色感叹号的“USB-Blaster”的设备驱动。 2、Quartus系列软件的安装目录下自带USB-blaster的驱动程序,右键更新驱动,选择驱动目录:(D:\intelFPGA\18.1\quartus\drivers\usb-blaster,文件位置和版本请按照自己安装的路径选择),点击Next开始安装。 3、安装成功,重启电脑即可使

adolphwang_909086的博客 6万+

android 处理图片之--bitmap处理

-2、从资源中获得bitmap Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); 或者 Bitmap bmp = ((BitmapDrawable)getResources().getDrawable(R.drawable.show)).getBitma

chaozhung的专栏 3179

【深度学习3】ubuntu22.04从零开始搭建深度学习环境

ubuntu22.04从零开始搭建深度学习开发环境

weixin_43387635的博客 1万+

AUTOSAR RTE配置实战:从ECU分区到Task映射的完整指南

本文提供了一份AUTOSAR RTE配置的完整实战指南。从创建ECU分区、定义OS任务,到实现Runnable Entity与Task的精确映射,详细解析了每一步的操作要点与常见陷阱。文章结合配置工具界面,旨在帮助开发者高效完成RTE配置,确保系统实时性与数据一致性,是掌握AUTOSAR核心开发流程的实用参考。

weixin_29228203的博客 485

drawable与Bitmap

从资源文件目录获取图片: Drawable drawable = ContextCompat.getDrawable(this, R.mipmap.ic_launcher);drawable.getBounds(); // 获取Drawable的大小范围将Drawable转换成Bitmap Drawable drawable = ContextCompat.ge...

bangan1464的博客 203

Python实战:用Sinkhorn算法搞定最优传输问题(附完整代码)

本文详细介绍了如何使用Python实现Sinkhorn算法解决最优传输问题,包括算法原理、关键步骤和完整代码示例。通过实际案例(如图像颜色迁移)展示其高效性和稳定性,适合机器学习开发者和数据科学家应用于分布匹配等场景。

weixin_30879169的博客 98

Android中Bitmap和Drawable

一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2、Canvas画布,绘图的目的区域,用于绘图 3、Bitmap位图,用于图的处理 4、Matrix矩阵 二、Bitmap 1、从资源中获取Bit...

dyh7077063的博客 388

数据助力行业发展:BJTU-RAO转向架数据集介绍

BJTU-RAO转向架数据集是完全公开的,何研究人员皆可以通过后文的下载链接免费下载数据,且在标注数据来源的前提下,研究人员可以自由使用BJTU-RAO转向架数据集。因此,聚焦各类列车转向架传动系统在途安全保障新技术研究和新算法开发,实现牵引电机、驱动齿轮箱和轴箱等关键部件的实时状态监测与智能故障诊断,对保障列车安全可靠运行具有重要的现实意义。BJTU-RAO转向架数据集包含51种健康状态的样本,涵盖正常状态、部件级单一故障、部件级复合故障以及系统级关联复合故障,数据量达116GB。

2401_88870554的博客 3501

手把手教你用Simulink搭建DSOGI-PLL模型(附完整代码下载)

本文详细介绍了在Simulink中搭建高鲁棒性DSOGI-PLL模型的完整工程实践指南。针对传统锁相环在非理想电网下的不足,文章深入剖析了双二阶广义积分器锁相环(DSOGI-PLL)的核心原理与优势,并提供了从模块构建、系统组装到参数整定与测试验证的全流程手把手教程,附有完整代码下载,助力工程师应对谐波、电压跌落等复杂电网工况。

weixin_29223603的博客 388

安卓图片操作:drawable、bitmap、byte[]之间互转,以及drawable的操作

一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2、Canvas画布,绘图的目的区域,用于绘图 3、Bitmap位图,用于图的处理 4、Matrix矩阵 二、Bitmap 1、从资源中获

梦想家 894

ESP32、MicroPython、天问ASR-PRO,串口发送数据并播报

天问ASRPRO语音芯片内置脑神经网络处理器,支持DNN、TDNN、RNN等神经网络及卷积运算硬件运算,非软件运算,支持语音识别、声纹识别、语音增强、语音检测、单麦克风降噪增强、单麦克风回声消除、360度全方位拾音等功能。ASR-PRO可以图形化编程,降低开发难度,对小白友好。之前使用ASRPRO与ESP32进行过语音控制,这次由于一个项目需要对ESP处理过后的数据进行播报,就想到利用该模块。以下程序主要为测试代码,并非实际项目,仅供参考学习(若有错误,欢迎指正)。二者通过串口通信,波特率为9600。

weak_student的博客 5951

Android中Bitmap和Drawable详解

一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2、Canvas画布,绘图的目的区域,用于绘图 3、Bitmap位图,用于图的处理 4、Matrix矩阵 二、Bitmap 1、从资源中获

maokao8053的博客 291

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android开发之Bitmap 、byte[] 、 Drawable之间的相互转换

一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2、Canvas画布,绘图的目的区域,用于绘图 3、Bitmap位图,用于图的处理 4、Matrix矩阵 二、Bitmap 1、从资源中...

agnes9243的博客 136

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android中Bitmap,byte[],Drawable相互转化

一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2、Canvas画布,绘图的目的区域,用于绘图 3、Bitmap位图,用于图的处理 4、Matrix矩阵 二、Bitmap 1、从资源中获

huang9012的专栏 658

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android 图片和Base64转化,并保存相册

现在在Android开发中很少用到Base64的BASE64Encoder及BASE64Decoder,今天在h5中需要将图片的base64数据转化为图片保存到相册,项目中居然找不到BASE64Encoder及BASE64Decoder类,一顿百度方法怎么可以引用,最后发现还是将BASE64Encoder及BASE64Decoder类源码引入最方便; 直接下载源码 补充下:Base64的加密解...

无名的一棵小树 5324
上一篇: android之cpu使用率曲线效果的实现!
下一篇: android手机虚拟按钮开发问题点
狂发飘飘
博客等级 码龄15年 18粉丝 50原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值