Android图像处理之冰冻效果
16lz
2021-12-04
原图 效果图
代码:
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();}@Overrideprotected 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);//Rint pixel = pixelsR - pixelsG - pixelsB;pixel = pixel * 3 / 2;if (pixel < 0) {pixel = -pixel;}if (pixel > 255){pixel = 255;}pixelsR = pixel; // 计算后重置R值,以下类同//Gpixel = pixelsG - pixelsR - pixelsB;pixel = pixel * 3 / 2;if (pixel < 0) {pixel = -pixel;}if (pixel > 255){pixel = 255;}pixelsG = pixel;//Bpixel = pixelsB - pixelsR - pixelsG;pixel = pixel * 3 / 2;if (pixel < 0) {pixel = -pixel;}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);}}
参考博文:点击打开链接
更多相关文章
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- android zxing生成二维码
- Android实现引导页并滑动跳转到主界面
- Android屏幕像素转换
- android 文档路径获取
- Android登录界面开发及响应;页面跳转;传参
- Android核心技术-day02-03-获取手机内部存储空间
- Android(安卓)-- App生成快捷方式
- Android获取定位经纬度,转换成地址