2012年7月11日水曜日

Carema PreviewをJPEGに保存


ただしフォーカスはうまくとれない
AutoFocusCallback後にtakePictureするほうが良い

      private Camera.PreviewCallback mPrevCallback = new Camera.PreviewCallback()
      {
          //@Override
          public void onPreviewFrame(byte[] data, Camera camera)
          {
        Log.v(TAG, "Preview ");

              if (data != null)
              {
             
           //rawデータをJPEGファイルに変換
              Log.v(TAG, "Save JPEG " + _path);
              camera.addCallbackBuffer(data);
               Camera.Parameters params = camera.getParameters();
               Camera.Size size = params.getPreviewSize();
               YuvImage image =new YuvImage(data,params.getPreviewFormat(),
                size.width, size.height, null);
               File file = new File(_path);
               FileOutputStream out = null;
               try {
out= new FileOutputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
               image.compressToJpeg(
                       new Rect(0, 0, image.getWidth(), image.getHeight()), 100,
                       out);
               try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
                                         
              }

          camera.startPreview();

          }
         
      };

0 件のコメント:

コメントを投稿