카메라로 찍은 이미지 용량이 이상해서 질문드립니다.

mCamera.takePicture(shutter, raw, jpeg);

카메라로 사진을 찍으면 콜백함수가 호출 되잖아요?

제가 구현한 jpeg 콜백을 보여드리면

Camera.PictureCallback jpeg = new Camera.PictureCallback(){
public void onPictureTaken(byte[] data, Camera camera) {
FileOutputStream mFileOutputStream;
try {
mFileOutputStream = openFileOutput("temp_picture", MODE_WORLD_WRITEABLE);
mFileOutputStream.write(data);
mFileOutputStream.flush();
mFileOutputStream.close();
mFileOutputStream = openFileOutput("size_picture", MODE_WORLD_WRITEABLE);
String size = data.length+""; 
mFileOutputStream.write(size.getBytes());
mFileOutputStream.flush();
mFileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
};

이렇게 넘어온 데이터를 이미지 데이터와 데이터길이를 파일에 저장하는데요.

jpeg 콜백으로 받아서 저장하면 이미지 크기가 250kb정도 나올줄 알았는데

막상 저장하고 용량을 보면 1MB가 넘더라구요.

제가 뭔가 잘못한건지ㅠㅠ

넘어올때 jpeg로 압축된 이미지 데이터가 아닌 bmp 이미지 데이터가 넘어오는게 아닌가해서요.

이거 안드로이드 내에서 이미지 용량을 압축하는게 있나요?