カメラのプレビュー フレームをデバイスの外部ストレージに保存しようとしています。
これらは私のマニフェストの権限です:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
そして、これは surfaceChanged() 内のコールバックです:
mCamera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();
Size size = camera.getParameters().getPreviewSize();
frames++;
Log.v("Framecount", "Frame: " + frames + "Größe: " + data.length);
int width = parameters.getPreviewSize().width;
int height = parameters.getPreviewSize().height;
ByteArrayOutputStream outstr = new ByteArrayOutputStream();
Rect rect = new Rect(0, 0, width, height);
YuvImage yuvimage=new YuvImage(data,ImageFormat.NV21,width,height,null);
yuvimage.compressToJpeg(rect, 100, outstr);
Bitmap bmp = BitmapFactory.decodeByteArray(outstr.toByteArray(), 0, outstr.size());
Bitmap thumbnail = Bitmap.createScaledBitmap(bmp, 20, 20, false);
try {
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/.aaaaaaaaa/");
dir.mkdirs();
File file = new File(dir, "filename.jpg");
FileOutputStream output = new FileOutputStream(file);
yuvimage.compressToJpeg(rect, 90, output);
output.flush();
output.close();
}
catch(Exception e) {
Log.v("Error", "Error");
}
}
});
画面にプレビュー フレームを表示することは問題ではなく、保存できないだけです。誰が何が間違っているのか考えていますか?