drawable(2、bitmap)

2779 ワード

RGBから階調を変えて表示するPNGリソースのインポート例を示します.コードは以下の通りです.
public class GrayView extends View {



    private Bitmap bmp;

    

    public GrayView(Context context) {

        super(context);

        Resources res = getResources();

        bmp    = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);// ic_launcher bitmap 

    }



    @Override

    protected void onDraw(Canvas canvas) {

        // TODO Auto-generated method stub

        Bitmap output = Bitmap.createBitmap(bmp.getWidth(), 

                bmp.getHeight(), 

                Config.ARGB_8888);// bitmap bitmap  for(int i = 0; i < bmp.getWidth(); i++){

            for(int j = 0; j < bmp.getHeight(); j++){

                

                int color     = bmp.getPixel(i, j);//  int red     = Color.red(color); // R、G、B  int green     = Color.green(color);

                int blue     = Color.blue(color);

                

                int tmp = (red + green + blue)/3; // 

                

                output.setPixel(i, j, Color.rgb(tmp,tmp,tmp)); // R、G、B

            }

        }

        canvas.drawBitmap(output, 100, 100, null);// bitmap canvas 

    }

}