마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

canvas에 있는 이미지를 bitmap 객체에 담고싶습니다.

0 추천
public Bitmap mask(){
  //mDraw 에서 이미지 좌표값의 이미지 호출
  DrawView mDraw = new DrawView(this);
  Display cropDisplay = mDraw.getDisplay();  
    
  //Bitmap cropBitmap= Bitmap.createBitmap(cropDisplay.getWidth(), cropDisplay.getHeight(), Bitmap.Config.ARGB_4444);
  
  Bitmap backBitmap = Bitmap.createBitmap(photo.getWidth(),photo.getHeight(), photo.getConfig());
  canvas = new Canvas(backBitmap);
  paint = new Paint();
  //canvas.drawBitmap(cropBitmap, 0, 0, paint);
  paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.DST_IN));
  canvas.drawBitmap(backBitmap, 0, 0, paint);
  
  
  //maskBitmap = canvas.  <-- 이부분에 비트맵 객체에 캔버스 넣는것
  
  
  return maskBitmap;
 }

여러가지 방법으로 bitmap 객체에 캔버스에서 그린것을 넣고 싶은데 넣어지지가 않네요.
고수님의 조언을 구하고 싶습니다.

 

slee2540 (470 포인트) 님이 2014년 5월 19일 질문

1개의 답변

0 추천
 
채택된 답변
maskBitmap의 Canvas에 drawBitmap메서드를 이용해서 backBitmap을 그리면 원하시는 방향이 맞는듯합니다.
q1212 (26,020 포인트) 님이 2014년 5월 19일 답변
slee2540님이 2014년 5월 19일 채택됨
죄송한데 조금더 구체적으로 표현 해주시면 안될까여?
아무리 저장을 하려고 해도 저장되지가 않습니다. 간단한 코딩으로 설명이 안될까요?
http://stackoverflow.com/questions/10847728/how-can-i-get-the-bitmap-of-the-canvas-i-get-in-ondraw
이곳에서 setBitmap 사용하면 canvas의 bitmap객체에 접근할수 있다고하는데 저는 그렇게 안되더라구요.
public  Bitmap mask(Bitmap cropBitmap){
        //mDraw 에서 이미지 좌표값의 이미지 호출
        DrawView mDraw = new DrawView(this);
        int width = mDraw.getPainting().getWidth();
        int height = mDraw.getPainting().getHeight();
       
        cropBitmap= Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);       
        Bitmap backBitmap = Bitmap.createBitmap(image1.getWidth(),image1.getHeight(), photo.getConfig());
       
        Canvas newCanvas= new Canvas(cropBitmap);
        paint = new Paint();
        newCanvas.drawBitmap(cropBitmap, 0, 0, paint);
        paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.DST_IN));       
        newCanvas.drawBitmap(backBitmap, 0, 0, paint);
       
        newCanvas.setBitmap(cropBitmap);
    return cropBitmap;       
    }
...