android滤镜效果,Android图像处理之霓虹滤镜效果
霓虹是用来描绘图像的轮廓,勾画出颜色变化的边缘,加强其过度效果,使图像产生轮廓发光的效果。
主要步骤为
1、根据当前像素与其右方和下方像素的梯度运算;
2、然后将结果值作为当前像素值,即将原图当前下像素的RGB分量与其右方和下方像素做梯度 运算(差的平方和平方根);
3、然后将梯度值作为处理后的像素的RGB三个分量;
用代码实现如下:
//霓虹
public static Bitmap Neon(Bitmap bitmap){
int w = bitmap.getWidth();
int h = bitmap.getHeight();
Bitmap resultBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);
int color = 0;
int r,g,b,r1,g1,b1,r2,g2,b2;
int[] oldPx = new int[w * h];
int[] newPx = new int[w * h];
bitmap.getPixels(oldPx, 0, w, 0, 0, w, h);
for(int y = 0; y < h - 1; y++){
for(int x = 0; x < w - 1; x++){
color = oldPx[x+y*w];
r = (color >> 16) & 0xFF;
g = (color >> 8) & 0xFF;
b = (color >> 0) & 0xFF;
int newcolor = oldPx[x+1+y*w];
r1 = (newcolor >> 16) & 0xFF;
g1 = (newcolor >> 8) & 0xFF;
b1 = (newcolor >> 0) & 0xFF;
int newcolor2 = oldPx[x+(y+1)*w];
r2 = (newcolor2 >> 16) & 0xFF;
g2 = (newcolor2 >> 8) & 0xFF;
b2 = (newcolor2 >> 0) & 0xFF;
int tr = (int) (2*Math.sqrt(((r-r1)*(r-r1)+(r-r2)*(r-r2))));
int tg = (int) (2*Math.sqrt(((g-g1)*(g-g1)+(g-g2)*(g-g2))));
int tb = (int) (2*Math.sqrt(((b-b1)*(b-b1)+(b-b2)*(b-b2))));
newPx[x+y*w] = (255 << 24)|(tr << 16)|(tg << 8)|(tb);
}
}
resultBitmap.setPixels(newPx, 0, w, 0, 0, w, h);
return resultBitmap;
}
对应的效果图如下:
原图如下:
挺具有魔幻色彩的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
android滤镜效果,Android图像处理之霓虹滤镜效果相关推荐
- 【Android】图形图像处理
1.简单图片 <1>Bitmap <2>BitmapFactory [Android]图形图像处理之"简单图片" (这里包含一个图片放大器实例) 2.逐帧动 ...
- Android版OpenCV图像处理技术亲自验证[三]之斑点检测ColorBlobDetector
Android版OpenCV图像处理技术亲自验证[二]之斑点检测ColorBlobDetector 程序之美 前言 主体 运行效果 构建过程 核心代码 所遇问题 结束语 程序之美 前言 OpenCV是 ...
- Android之Glide图像处理
经过了一段时间的忙碌,终于有一点点自己的学习时间,后悔在前段时间的开发中遇到好多有趣的问题,虽然解决了,但是都没有时间记录下来,准备接下来补上.看到了Glide圆角加载后,深入了解才知道还有其他的变换 ...
- [Pro.android.3][读书笔记]Android 01 Android简介 连载
转自http://blog.163.com/wangli_601/blog/static/122950173201162411490673/ 计算机一直在变的更易用.更人性化.手持设备也已经朝着智能设 ...
- android之android.intent.category.DEFAULT的用途和使用
1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...
- android:layout_with=,android – 难以理解layout_alignWithParentIfMissing
这仅适用于使用RelativeLayout时. 如果您将元素设置为一个其他元素,则表示该元素位于该元素的左侧. 但是如果这个元素会丢失,因为你删除它,例如它将与父对齐. 举个例子 android:la ...
- [Android Studio] Android Studio常用快捷键
[Android Studio] Android Studio常用快捷键 (会持续更新)这边讲的常用快捷键是指做完Keymap到Eclipse后的,不是纯Android Studio的,这边主要讲下比 ...
- Android利用android:indeterminateDrawable来实现ProgressBar三种方式
方式1:(效果为补间动画一样) [html] view plaincopyprint? <ProgressBar android:layout_width="wrap_content& ...
- Android之Android实现浮层的上下滑动(支持内部添加View)
前言 我K,今天居然是情人节,对于资深的单身狗来说,简直是个噩耗,今天注定是各种秀恩爱,心塞中.... 话题到此结束,管他什么情人节,今天给大家带来的是一个浮层的上下滑动,浮层滑动时分三种状态:全部显 ...
最新文章
- 留学计算机Ps模板,留学ps怎么写?出国留学ps模板
- 2013年第四季度总结报告
- H5学习从0到1-H5的基本标签(2)
- ssd1306 OLED 初始化流程
- 远程连接linux的mysql_【Linux开启mysql远程连接的设置步骤】 mysql开启远程连接
- EL表达式及其定义和使用 转
- 风景园林设计专业要学哪些软件?这几款软件你一定要了解!
- 基因重组-冲刺日志(第七天)
- 服务器打开xlsm文件,XLSM 文件扩展名: 它是什么以及如何打开它?
- chrome浏览器打开网址找不到服务器IP
- Vue项目实现点击图标拨打电话
- exls表格搜索快捷键_Excel快捷键使用大全
- 关闭ssh隧道的几种“优雅”方式
- 【深度强化学习】GAIL 与 IRL 的理解
- 信息熵与信息增益的概念
- Fisco技术文档总结1---搭建第一个区块链网络
- 针对管家婆 登录 密码加密js分析(学习第二天)
- 【UE4】GamePlay框架应用(蓝图)
- 【tgowt】cmake转ninja vs构建
- 在线视频付费点播网站怎么搭建?