博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android图像处理之熔铸特效
阅读量:4104 次
发布时间:2019-05-25

本文共 1908 字,大约阅读时间需要 6 分钟。

代码:

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);			//R			int pixel = pixelsR * 128 / (pixelsG + pixelsB + 1);			if (pixel < 0) {				pixel = 0;			} else if (pixel > 255) {				pixel = 255;			}			pixelsR = pixel;			//G			pixel = pixelsG * 128 / (pixelsB + pixelsR + 1);			if (pixel < 0){				pixel = 0;			}			else if (pixel > 255){				pixel = 255;			}			pixelsG = pixel;			//B			pixel = pixelsB * 128 / (pixelsR + pixelsG + 1);			if (pixel < 0){				pixel = 0;			}			else if (pixel > 255){				pixel = 255;			}			pixelsB = pixel;			// 根据新的RGB生成新像素			newPixels[i] = Color.argb(pixelsA, pixelsR, pixelsG, pixelsB);		}		// 根据新像素生成新图片		bitmap.setPixels(newPixels, 0, width, 0, 0, width, height);		canvas.drawBitmap(bitmap, 0, 0, myPaint);	}}

转载地址:http://bucsi.baihongyu.com/

你可能感兴趣的文章
使用Linux命令行测试网速
查看>>
Ubuntu/Linux Mint用上仿Win7/Win8主题
查看>>
C++界面库大全2013
查看>>
4个Linux服务器监控工具
查看>>
VS2013编译Qt5.2.1 32位静态库debug-and-release版及结果分享
查看>>
白苹果如何制作自己的OS X 10.9“巨浪”可引导系统安装盘?
查看>>
在Ubuntu、Linux Mint上安装Mac OS X主题
查看>>
Windows系统中MySQL 5.6的配置文件(my.ini)修改方法
查看>>
mysql配置优化(windows下my.ini)
查看>>
Windows环境下免安装版MySQL 5.6.11安装配置详解
查看>>
MySQL-5.6.13解压版(zip版)安装配置教程
查看>>
Visual Studio原生开发的10个调试技巧
查看>>
Visual Studio原生开发的20条调试技巧(下)
查看>>
四种解决”Argument list too long”参数列表过长的办法
查看>>
JSON资料整理
查看>>
Fedora 8平台Mysql 5的安装
查看>>
MFC绘制动态曲线,用双缓冲绘图技术防闪烁
查看>>
教育网可用的北邮的Fedora 8 yum源
查看>>
Web开发人员必备技能表
查看>>
12款最佳的网站速度和性能测试工具
查看>>