这篇将讲到图片特效处理的底片效果。跟前面一样是对像素点进行处理,算法是通用的。

算法原理:将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值。

例:

ABC

求B点的底片效果:

B.r = 255 - B.r;

B.g = 255 - B.g;

B.b = 255 - B.b;

效果图:

效果图                                                                     原图

代码:

[java] view plaincopy
  1. package com.color;
  2. import android.content.Context;
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.graphics.Canvas;
  6. import android.graphics.Color;
  7. import android.graphics.Paint;
  8. import android.util.AttributeSet;
  9. import android.widget.ImageView;
  10. public class ColorView extends ImageView {
  11. private Paint myPaint = null;
  12. private Bitmap bitmap = null;
  13. private int width,height;
  14. private int[] oldPixels;
  15. private int[] newPixels;
  16. private int color,color2;
  17. private int pixelsR,pixelsG,pixelsB,pixelsA,pixelsR2,pixelsG2,pixelsB2;
  18. public ColorView(Context context, AttributeSet attrs)
  19. {
  20. super(context, attrs);
  21. bitmap = BitmapFactory.decodeResource(context.getResources(),R.drawable.ww);
  22. width = bitmap.getWidth();
  23. height = bitmap.getHeight();
  24. oldPixels = new int[width*height];
  25. newPixels = new int[width*height];
  26. invalidate();
  27. }
  28. @Override
  29. protected void onDraw(Canvas canvas) {
  30. super.onDraw(canvas);
  31. //获取像素
  32. bitmap.getPixels(oldPixels, 0, width, 0, 0, width, height);
  33. for(int i = 1;i < height*width; i++){
  34. color = oldPixels[i];
  35. //获取RGB分量
  36. pixelsA = Color.alpha(color);
  37. pixelsR = Color.red(color);
  38. pixelsG = Color.green(color);
  39. pixelsB = Color.blue(color);
  40. //转换
  41. pixelsR = (255 - pixelsR);
  42. pixelsG = (255 - pixelsG);
  43. pixelsB = (255 - pixelsB);
  44. //均小于等于255大于等于0
  45. if(pixelsR > 255){
  46. pixelsR = 255;
  47. }
  48. else if(pixelsR < 0){
  49. pixelsR = 0;
  50. }
  51. if(pixelsG > 255){
  52. pixelsG = 255;
  53. }
  54. else if(pixelsG < 0){
  55. pixelsG = 0;
  56. }
  57. if(pixelsB > 255){
  58. pixelsB = 255;
  59. }
  60. else if(pixelsB < 0){
  61. pixelsB = 0;
  62. }
  63. //根据新的RGB生成新像素
  64. newPixels[i] = Color.argb(pixelsA, pixelsR, pixelsG, pixelsB);
  65. }
  66. //根据新像素生成新图片
  67. bitmap.setPixels(newPixels, 0, width, 0, 0, width, height);
  68. canvas.drawBitmap(bitmap,0,0,myPaint);
  69. }
  70. }

转载于:https://www.cnblogs.com/Free-Thinker/p/6722086.html

android图像处理(3)底片效果相关推荐

  1. Android图像处理整理

    Android图像处理整理 参考:http://blog.csdn.net/luzhenyuxfcy/article/details/49427781 我们常用的处理方式基本都是在对像素矩阵按照一定的 ...

  2. android图像处理系列之五-- 给图片添加边框(中)

    前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...

  3. android 涂鸦之图片叠加,android图像处理系列之七--图片涂鸦,水印-图片叠加...

    图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可.前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操 ...

  4. Android图像处理-像素化的原理及实现

    原文地址:Android图像处理-像素化的原理及实现 博客地址:xiazdong.github.io 马赛克算法首先需要确定马赛克单元的大小,即小方块的大小.马赛克图的每个马赛克单元都是纯色的块,其取 ...

  5. 客户端+调用+matlab,基于web的android图像处理示范(Win7+Apache+PHP+Matlab+Android)

    基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android) 本文将介绍C/S模式的图像处理系统.C/S的框架已经在[1]中作了简单的介绍.[2]中介绍了如何 ...

  6. Android 图像处理软件

    原文出处:http://blog.csdn.net/mc_hust/article/details/43708163 在机器视觉实验室呆了有一年半时间了,但由于自己"任性".一直以 ...

  7. android图像边缘检测,Android图像处理系统1.4图像的锐化-边缘检测

    Android图像处理系统1.4图像的锐化-边缘检测 图像的锐化-边缘检测:(Robert Gradient.Sobel Gradient.Laplace Gradient) @author:郑海波 ...

  8. android图像处理系列之五--给图片添加边框(中)

    前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...

  9. android图像处理(3) 底片效果

    这篇将讲到图片特效处理的底片效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理:将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值. 例: ABC 求B点的底片效果: B.r ...

最新文章

  1. 面试了一个 46 岁的程序员,我思绪万千!
  2. Read a large file with python
  3. Spring Boot 2.0.5 配置Druid数据库连接池
  4. android studio升级版本,导入项目出错
  5. 一文搞定 Hive 表分隔符
  6. 马斯克点赞中国新能源汽车产业,特斯拉加快中国超级充电网络布局
  7. Ubuntu, python, CUDA, cuDNN, 驱动, GCC ....的对应关系
  8. python 模拟人生
  9. 时间序列数据的存储和计算 - 概述
  10. AD 屏蔽原理图中的器件
  11. vue 下载Excel 文件
  12. 平板电脑安装软件_哪个便签可以横屏?平板电脑横屏便签软件推荐
  13. 为什么你还没有买新能源汽车? 1
  14. AI生命科学绘图(2):基因结构可变剪切的绘制
  15. 基础——ROM, RAM, FLASH, SSD, DDR3/4, eMMC, UFS, SD卡, TF卡,相互关系
  16. 计算机教师暑期到企业实践总结,国培教师企业实践总结
  17. [音乐孩子王08 最终回][大野智/千纱/片瀬那奈/丸山隆平]
  18. b374k php webshell
  19. CATV光传输盒方案
  20. linux终端链接网络,Ubuntu通过命令行设置无线网络连接

热门文章

  1. python写一个表白程序-用Python做一个情人节表白神器
  2. python软件安装步骤-一篇非常棒的安装Python及爬虫入门博文!
  3. python条件语句-python条件、循环语句
  4. python电脑下载网址-Python
  5. 熟练掌握python是什么概念-Quant面试时说:熟练掌握Python,请三思,不然凉凉~
  6. python处理表格数据-python通过xrld库读取表格数据
  7. python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!
  8. python语法大全-python基本语法
  9. python如何读取excel数据-使用Python读取电子表格中的数据
  10. python 是什么类型的语言-python是一种什么类型的语言