Android编程之图片颜色处理方法

2019-12-10 19:55:55于海丽
  • bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.b);   updateBitmap = Bitmap.createBitmap(bitmap.getWidth(),  
  • bitmap.getHeight(), bitmap.getConfig());   canvas = new Canvas(updateBitmap);  
  • paint = new Paint();   final ColorMatrix cm = new ColorMatrix();  
  • paint.setColorFilter(new ColorMatrixColorFilter(cm));   paint.setColor(Color.BLACK);  
  • paint.setAntiAlias(true);   final Matrix matrix = new Matrix();  
  • canvas.drawBitmap(bitmap, matrix, paint);   iv.setImageBitmap(updateBitmap);  
  • /**   * RGB三原色 红色值的设置  
  • */  sb1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {  
  • @Override  public void onStopTrackingTouch(SeekBar seekBar) {  
  • int progress = seekBar.getProgress();   cm.set(new float[] { progress / 128f, 0, 0, 0, 0,// 红色值  
  • 0, 1, 0, 0, 0,// 绿色值   0, 0, 1, 0, 0,// 蓝色值  
  • 0, 0, 0, 1, 0 // 透明度   });  
  • paint.setColorFilter(new ColorMatrixColorFilter(cm));   canvas.drawBitmap(bitmap, matrix, paint);  
  • iv.setImageBitmap(updateBitmap);   }  
  • @Override  public void onStartTrackingTouch(SeekBar seekBar) {  
  • }   @Override 
  • public void onProgressChanged(SeekBar seekBar, int progress,   boolean fromUser) {  
  • }   });  
  • /**   * RGB三原色 绿色值的设置  
  • */  sb2.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {  
  • @Override  public void onStopTrackingTouch(SeekBar seekBar) {  
  • int progress = seekBar.getProgress();   cm.set(new float[] { 1, 0, 0, 0, 0,// 红色值  
  • 0, progress / 128f, 0, 0, 0,// 绿色值   0, 0, 1, 0, 0,// 蓝色值