霓虹是用来描绘图像的轮廓,勾画出颜色变化的边缘,加强其过度效果,使图像产生轮廓发光的效果。

主要步骤为

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图像处理之霓虹滤镜效果相关推荐

  1. 【Android】图形图像处理

    1.简单图片 <1>Bitmap <2>BitmapFactory [Android]图形图像处理之"简单图片" (这里包含一个图片放大器实例) 2.逐帧动 ...

  2. Android版OpenCV图像处理技术亲自验证[三]之斑点检测ColorBlobDetector

    Android版OpenCV图像处理技术亲自验证[二]之斑点检测ColorBlobDetector 程序之美 前言 主体 运行效果 构建过程 核心代码 所遇问题 结束语 程序之美 前言 OpenCV是 ...

  3. Android之Glide图像处理

    经过了一段时间的忙碌,终于有一点点自己的学习时间,后悔在前段时间的开发中遇到好多有趣的问题,虽然解决了,但是都没有时间记录下来,准备接下来补上.看到了Glide圆角加载后,深入了解才知道还有其他的变换 ...

  4. [Pro.android.3][读书笔记]Android 01 Android简介 连载

    转自http://blog.163.com/wangli_601/blog/static/122950173201162411490673/ 计算机一直在变的更易用.更人性化.手持设备也已经朝着智能设 ...

  5. android之android.intent.category.DEFAULT的用途和使用

    1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...

  6. android:layout_with=,android – 难以理解layout_alignWithParentIfMissing

    这仅适用于使用RelativeLayout时. 如果您将元素设置为一个其他元素,则表示该元素位于该元素的左侧. 但是如果这个元素会丢失,因为你删除它,例如它将与父对齐. 举个例子 android:la ...

  7. [Android Studio] Android Studio常用快捷键

    [Android Studio] Android Studio常用快捷键 (会持续更新)这边讲的常用快捷键是指做完Keymap到Eclipse后的,不是纯Android Studio的,这边主要讲下比 ...

  8. Android利用android:indeterminateDrawable来实现ProgressBar三种方式

    方式1:(效果为补间动画一样) [html] view plaincopyprint? <ProgressBar android:layout_width="wrap_content& ...

  9. Android之Android实现浮层的上下滑动(支持内部添加View)

    前言 我K,今天居然是情人节,对于资深的单身狗来说,简直是个噩耗,今天注定是各种秀恩爱,心塞中.... 话题到此结束,管他什么情人节,今天给大家带来的是一个浮层的上下滑动,浮层滑动时分三种状态:全部显 ...

最新文章

  1. 留学计算机Ps模板,留学ps怎么写?出国留学ps模板
  2. 2013年第四季度总结报告
  3. H5学习从0到1-H5的基本标签(2)
  4. ssd1306 OLED 初始化流程
  5. 远程连接linux的mysql_【Linux开启mysql远程连接的设置步骤】 mysql开启远程连接
  6. EL表达式及其定义和使用 转
  7. 风景园林设计专业要学哪些软件?这几款软件你一定要了解!
  8. 基因重组-冲刺日志(第七天)
  9. 服务器打开xlsm文件,XLSM 文件扩展名: 它是什么以及如何打开它?
  10. chrome浏览器打开网址找不到服务器IP
  11. Vue项目实现点击图标拨打电话
  12. exls表格搜索快捷键_Excel快捷键使用大全
  13. 关闭ssh隧道的几种“优雅”方式
  14. 【深度强化学习】GAIL 与 IRL 的理解
  15. 信息熵与信息增益的概念
  16. Fisco技术文档总结1---搭建第一个区块链网络
  17. 针对管家婆 登录 密码加密js分析(学习第二天)
  18. 【UE4】GamePlay框架应用(蓝图)
  19. 【tgowt】cmake转ninja vs构建
  20. 在线视频付费点播网站怎么搭建?

热门文章

  1. 可是笑声太响了的64391111
  2. 如果谁和飞鸽传书讨论这两个问题
  3. 移动应用开发商的生存之道
  4. 在 CTreeCtrl 中枚举系统中的所有窗口!(I)
  5. 佛系程序员:什么bug不bug的,随缘吧
  6. HTML5 API详解(16):web socket 全双工通信
  7. python批量将pdf转成word_如何用Python把pdf转换成word
  8. 上海药物所揭示KRAS突变肿瘤的分子分型和精准治疗新策略
  9. 推荐一个神器 - 把你的照片随心所欲的摆成各种形状
  10. 哈佛大学单细胞课程|笔记汇总 (二)