Android图像处理之熔铸特效_第1张图片Android图像处理之熔铸特效_第2张图片


代码:

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 * 128 / (pixelsG + pixelsB + 1);if (pixel < 0) {pixel = 0;} else if (pixel > 255) {pixel = 255;}pixelsR = pixel;//Gpixel = pixelsG * 128 / (pixelsB + pixelsR + 1);if (pixel < 0){pixel = 0;}else if (pixel > 255){pixel = 255;}pixelsG = pixel;//Bpixel = 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);}}


更多相关文章

  1. Android 双击和手势的图片缩放
  2. android HttpClient 上传图片
  3. Android屏幕像素转换
  4. Android – 加载图片本缓存到内存与本地
  5. Android圆形图片--自定义控件
  6. Android APIDemo gif图片显示
  7. android 图片合成
  8. Android中Gallery来显示图片

随机推荐

  1. Android桌面快捷方式的实现
  2. android > Intent 带参数跳转
  3. Android下载图片
  4. android Intent的一些用法
  5. android nfc(官方翻译)
  6. Android(安卓)代码中设置drawableleft 改
  7. android获取屏幕的大小
  8. Android(安卓)GPS或NewWork获取当前位置
  9. 联系人聚合ContactAggregator2分析
  10. android intent打开各种文件的方法