android图像处理(3)底片效果
这篇将讲到图片特效处理的底片效果。跟前面一样是对像素点进行处理,算法是通用的。
算法原理:将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值。
例:
ABC
求B点的底片效果:
B.r = 255 - B.r;
B.g = 255 - B.g;
B.b = 255 - B.b;
效果图:
效果图 原图
代码:
- package com.color;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.util.AttributeSet;
- import android.widget.ImageView;
- public class ColorView extends ImageView {
- private Paint myPaint = null;
- private Bitmap bitmap = null;
- private int width,height;
- private int[] oldPixels;
- private int[] newPixels;
- private int color,color2;
- private int pixelsR,pixelsG,pixelsB,pixelsA,pixelsR2,pixelsG2,pixelsB2;
- public ColorView(Context context, AttributeSet attrs)
- {
- super(context, attrs);
- bitmap = BitmapFactory.decodeResource(context.getResources(),R.drawable.ww);
- width = bitmap.getWidth();
- height = bitmap.getHeight();
- oldPixels = new int[width*height];
- newPixels = new int[width*height];
- invalidate();
- }
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- //获取像素
- bitmap.getPixels(oldPixels, 0, width, 0, 0, width, height);
- for(int i = 1;i < height*width; i++){
- color = oldPixels[i];
- //获取RGB分量
- pixelsA = Color.alpha(color);
- pixelsR = Color.red(color);
- pixelsG = Color.green(color);
- pixelsB = Color.blue(color);
- //转换
- pixelsR = (255 - pixelsR);
- pixelsG = (255 - pixelsG);
- pixelsB = (255 - pixelsB);
- //均小于等于255大于等于0
- if(pixelsR > 255){
- pixelsR = 255;
- }
- else if(pixelsR < 0){
- pixelsR = 0;
- }
- if(pixelsG > 255){
- pixelsG = 255;
- }
- else if(pixelsG < 0){
- pixelsG = 0;
- }
- if(pixelsB > 255){
- pixelsB = 255;
- }
- else if(pixelsB < 0){
- pixelsB = 0;
- }
- //根据新的RGB生成新像素
- newPixels[i] = Color.argb(pixelsA, pixelsR, pixelsG, pixelsB);
- }
- //根据新像素生成新图片
- bitmap.setPixels(newPixels, 0, width, 0, 0, width, height);
- canvas.drawBitmap(bitmap,0,0,myPaint);
- }
- }
转载于:https://www.cnblogs.com/Free-Thinker/p/6722086.html
android图像处理(3)底片效果相关推荐
- Android图像处理整理
Android图像处理整理 参考:http://blog.csdn.net/luzhenyuxfcy/article/details/49427781 我们常用的处理方式基本都是在对像素矩阵按照一定的 ...
- android图像处理系列之五-- 给图片添加边框(中)
前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...
- android 涂鸦之图片叠加,android图像处理系列之七--图片涂鸦,水印-图片叠加...
图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可.前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操 ...
- Android图像处理-像素化的原理及实现
原文地址:Android图像处理-像素化的原理及实现 博客地址:xiazdong.github.io 马赛克算法首先需要确定马赛克单元的大小,即小方块的大小.马赛克图的每个马赛克单元都是纯色的块,其取 ...
- 客户端+调用+matlab,基于web的android图像处理示范(Win7+Apache+PHP+Matlab+Android)
基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android) 本文将介绍C/S模式的图像处理系统.C/S的框架已经在[1]中作了简单的介绍.[2]中介绍了如何 ...
- Android 图像处理软件
原文出处:http://blog.csdn.net/mc_hust/article/details/43708163 在机器视觉实验室呆了有一年半时间了,但由于自己"任性".一直以 ...
- android图像边缘检测,Android图像处理系统1.4图像的锐化-边缘检测
Android图像处理系统1.4图像的锐化-边缘检测 图像的锐化-边缘检测:(Robert Gradient.Sobel Gradient.Laplace Gradient) @author:郑海波 ...
- android图像处理系列之五--给图片添加边框(中)
前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...
- android图像处理(3) 底片效果
这篇将讲到图片特效处理的底片效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理:将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值. 例: ABC 求B点的底片效果: B.r ...
最新文章
- 面试了一个 46 岁的程序员,我思绪万千!
- Read a large file with python
- Spring Boot 2.0.5 配置Druid数据库连接池
- android studio升级版本,导入项目出错
- 一文搞定 Hive 表分隔符
- 马斯克点赞中国新能源汽车产业,特斯拉加快中国超级充电网络布局
- Ubuntu, python, CUDA, cuDNN, 驱动, GCC ....的对应关系
- python 模拟人生
- 时间序列数据的存储和计算 - 概述
- AD 屏蔽原理图中的器件
- vue 下载Excel 文件
- 平板电脑安装软件_哪个便签可以横屏?平板电脑横屏便签软件推荐
- 为什么你还没有买新能源汽车? 1
- AI生命科学绘图(2):基因结构可变剪切的绘制
- 基础——ROM, RAM, FLASH, SSD, DDR3/4, eMMC, UFS, SD卡, TF卡,相互关系
- 计算机教师暑期到企业实践总结,国培教师企业实践总结
- [音乐孩子王08 最终回][大野智/千纱/片瀬那奈/丸山隆平]
- b374k php webshell
- CATV光传输盒方案
- linux终端链接网络,Ubuntu通过命令行设置无线网络连接
热门文章
- python写一个表白程序-用Python做一个情人节表白神器
- python软件安装步骤-一篇非常棒的安装Python及爬虫入门博文!
- python条件语句-python条件、循环语句
- python电脑下载网址-Python
- 熟练掌握python是什么概念-Quant面试时说:熟练掌握Python,请三思,不然凉凉~
- python处理表格数据-python通过xrld库读取表格数据
- python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!
- python语法大全-python基本语法
- python如何读取excel数据-使用Python读取电子表格中的数据
- python 是什么类型的语言-python是一种什么类型的语言