【转】四、android图像特效处理之底片效果

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

算法原理:将当前像素点的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);
}
}

【转】四、android图像特效处理之底片效果,布布扣,bubuko.com

时间: 2024-12-19 00:50:00

【转】四、android图像特效处理之底片效果的相关文章

Android 中的图像特效(Matrix)

以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,现在在Android中有一个Matrix类,它的中文意思就是矩阵.Matrix主要是用于图像的缩放.平移.旋转.扭曲等操作.图像处理,主要用到的是乘法. 下面是一个乘法的公式: 在Android里面,Matrix由9个float值构成,是一个3*3的矩阵.如下图 其含义如下: sinX和cosX,表示旋转角度的cos值和sin值(旋转角度是按顺时针方向计算的).translateX和translateY表示x和y的平移量.scale是缩放的

[Android] 图像各种处理系列文章合集

    这是我最近在做Android随手拍一个项目的各种网上关于图片处理的资料,以前学过数字图像处理都是用C++写的,下面的资料个人认为是非常优秀的各种集合,另一方面它是在线笔记,希望对大家有所帮助吧!其中我截图部分都是作者经典的文章显示效果. 1.<android图片处理总结>作者邮箱可能是[email protected],同时sjf0115转载很多文章,非常优秀的一本短书.感谢作者和博主sjf0115(落日小屋). android图像处理系列之三--图片色调饱和度.色相.亮度处理    

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

这篇将讲到图片特效处理的底片效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理:将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值. 例: ABC 求B点的底片效果: B.r = 255 - B.r; B.g = 255 - B.g; B.b = 255 - B.b; 效果图: 效果图                                                                     原图 代码: [java] view plain c

javascript特效源码(2、图像特效)

1.不停闪烁的图像 不停闪烁的图片[修改显示的图片及链接地址后根据说明进行共1步] 1.以下代码放在一个新建页面的HTML的<body></body> 区即可:[页面上必须什么都没有] <HTML> <HEAD> <TITLE>Blink image</TITLE> </HEAD> <BODY ONLOAD="soccerOnload()" topmargin="0">

20145239 杜文超 实验四 Android开发基础

20145239实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试 了解Android组件.布局管理器的使用 掌握Android中事件处理机制 Android Studio安装 实验步骤 安装 JDK 并配置 JDK 环境变量 依次使用计算机->系统属性->高级系统设置->高级->环境变量,然后新建一个JAVA_HOME变量,令它为计算机中安装JDK的位置: 安装Andriod Studio并配置 1.双击运行Andri

20145331实验四 &quot;Android开发基础&quot;

20145331实验四 "Android开发基础" 程序设计过程 实验内容 ·安装Android Studio ·运行安卓AVD模拟器 ·使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 实验步骤 1.安装android studio: 2.安装完成后的截图如下所示: 3.新建一个工程: 4.进入工程并对输出进行修改,修改后的截图如下: 5.代码如下所示: 实验总结与心得体会: 我认为这次实验是对平台的熟悉的过程,实验过程基本平稳,没遇到什么太大的麻烦,不过这个软件运行的

20155208 实验四 Android开发基础

20155208 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握Android中事件处理机制. 实验要求 选做,有加分 实验步骤 (一)Android Stuidio的安装测试 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章 安装 Android Stuidio 完成Hello World

Android UI 特效大全

      Android UI特效大全 总体传送门:http://git.oschina.net/bob4j/Android-UI      基本上项目中都有效果图可自行查看 , 并且有些项目中都有README.md 文件,使用前请先阅读以下. 1.弧形(圆形)菜单布局 :  项目名:ArcLayout(弧形(或者圆形)布局菜单) 2.漂亮的对话框特效:BeautifulDialog(一些比较漂亮的对话框)   找不到图片了,自行运行下看效果吧 3.对话框树叶特效:beautifulLoadi

【转】一、android图片特效处理之模糊效果

这篇将讲到图片特效处理的模糊效果.跟前面一样是对像素点进行处理,算法是通用的,但耗时会更长,至于为什么,看了下面的代码你就会明白. 算法: 一.简单算法:将像素点周围八个点包括自身一共九个点的RGB值分别相加后平均,作为当前像素点的RGB值,即可实现效果. 举例: ABC DEF GHI 假如当前点是E,那么会有: E.r = (A.r + B.r + C.r + D.r + E.r + F.r + G.r + H.r + I.r) / 9 // r表示的是E像素点RGB值的R值 E像素点的GB