2012-03-30 3 views
1

여기 tempdata는 카메라에서 캡처 한 데이터입니다. savephoto (비트 맵)는 카메라에서 가져온 이미지를 저장하는 데 사용하는 메서드이며 정확하게 실행하고 있습니다. BUt on [2] 다른 비트 맵을 오버레이하고 있는데, savephoto (p)를 호출 할 때 메모리 카드에 빈 파일을 만듭니다 ... 이미지를 저장하지 않습니다. 내가 어떤 도움이 될 것입니다 서로카메라에서 이미지 캡처 및 저장하기 전에 다른 비트 맵 오버레이

[1]File Imgname = Environment.getExternalStorageDirectory(); 
Bitmap bmp = BitmapFactory.decodeByteArray(tempdata,0,tempdata.length); 
imv.setImageBitmap(bmp); 
savePhoto(bmp); 

[2]Bitmap bmp2 = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher); 
Bitmap b = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(b); 
canvas.drawBitmap(bmp, 0,0, null); 
canvas.drawBitmap(bmp2, 50, 50, null); 
savePhoto(b); 

의 상단에있는 두 개의 비트 맵을 오버레이 할 수있는 방법 크게

답변

2
당신이 카메라에서 비트 맵을받은 후받은 후 다음과 같이 할 수

(bitmap1 가정) 고맙습니다 감사하고 비트 맵 위에 비트 맵 오버레이 (비트 맵 2 가정) 비트 맵을 사용하여이 오버레이 마크()를 호출하면 필요한 비트 맵 오버레이 비트 맵이 반환됩니다. 당신은 내가이 코드를 시도

private Bitmap overlayMark(Bitmap bmp1, Bitmap bmp2) { 
    int bh = originalBitmap.getHeight(); 
    int bw = originalBitmap.getWidth(); 
    Bitmap bmOverlay = Bitmap.createBitmap(bw,bh,Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bmOverlay); 
    canvas.drawBitmap(bmp1, 0, 0, null); 
    canvas.drawBitmap(bmp2, 0,0, null); 
    return bmOverlay; 
} 
+0

.. 그 비트 맵을 저장할 수 있습니다 ,,하지만 난 메모리 카드에 bmOverlay를 저장할 때 작동하지 않습니다, 그것은, 0.0kb의 파일을 생성 빈 파일을 의미합니다 ,,,, – Pranav

+0

나에게 코드를 보여 줘야한다 –

+0

나는 binOverlay를 메서드에 넣는다.이 메서드는 차례로 파일을 저장하지만 빈 파일을 만들면 코드를 저장한다. http : //stackoverflow.com/questions/ 9939719/메모리 카드에서 이미지를 가져 오는 방법 – Pranav

관련 문제