public class TakePictureActivity extends Activity {
private static final int TAKE_PHOTO_CODE = 1;
ImageView imagetake;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
takePhoto();
this.setContentView(R.layout.camsurf);
imagetake = (ImageView) findViewById(R.id.view);
}
private void takePhoto(){
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(getTempFile(this)) );
startActivityForResult(intent, TAKE_PHOTO_CODE);
}
private File getTempFile(Context context){
//it will return /sdcard/image.tmp
final File path = new File( Environment.getExternalStorageDirectory(), context.getPackageName() );
if(!path.exists()){
path.mkdir(); }
return new File(path, "image.jpg");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case TAKE_PHOTO_CODE:
final File file = getTempFile(this);
try {
Bitmap captureBmp = Media.getBitmap(getContentResolver(), Uri.fromFile(file) );
// do whatever you want with the bitmap (Resize, Rename, Add To Gallery, etc)
Mat barcodeProcessingMat = new Mat();
barcodeProcessingMat=Utils.bitmapToMat(captureBmp);
//Imgproc.cvtColor(barcodeProcessingMat, barcodeProcessingMat, Imgproc.COLOR_RGB2GRAY);
Utils.matToBitmap(barcodeProcessingMat, captureBmp);
imagetake.setImageBitmap(captureBmp);
//imagetake.setImageBitmap(LocatingWithoutOrientation(captureBmp));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
break;
}
}
.........................................................................................................
05-20 22:22:04.319: W/dalvikvm(22705): threadid=1: thread exiting with uncaught exception (group=0x40018578)
05-20 22:22:04.319: E/AndroidRuntime(22705): FATAL EXCEPTION: main
05-20 22:22:04.319: E/AndroidRuntime(22705): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {
com.emsir.BarCodeV12.app/com.emsir.BarCodeV12.cam.TakePictureActivity}: CvException [org.opencv.core.CvException: /home/andreyk/OpenCV2/trunk/opencv_2.3.1.b2/modules/imgproc/src/color.cpp:2789: error: (-215) scn == 3 || scn == 4 in function void cv::cvtColor(const cv::_InputArray&, const cv::_OutputArray&, int, int)
05-20 22:22:04.319: E/AndroidRuntime(22705): ]
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.app.ActivityThread.deliverResults(ActivityThread.java:2536)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2578)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.app.ActivityThread.access$2000(ActivityThread.java:117)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:965)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.os.Looper.loop(Looper.java:123)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.app.ActivityThread.main(ActivityThread.java:3687)
05-20 22:22:04.319: E/AndroidRuntime(22705): at java.lang.reflect.Method.invokeNative(Native Method)
05-20 22:22:04.319: E/AndroidRuntime(22705): at java.lang.reflect.Method.invoke(Method.java:507)
05-20 22:22:04.319: E/AndroidRuntime(22705): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-20 22:22:04.319: E/AndroidRuntime(22705): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-20 22:22:04.319: E/AndroidRuntime(22705): at dalvik.system.NativeStart.main(Native Method)
05-20 22:22:04.319: E/AndroidRuntime(22705): Caused by: CvException [org.opencv.core.CvException: /home/andreyk/OpenCV2/trunk/opencv_2.3.1.b2/modules/imgproc/src/color.cpp:2789: error: (-215) scn == 3 || scn == 4 in function void cv::cvtColor(const cv::_InputArray&, const cv::_OutputArray&, int, int)
05-20 22:22:04.319: E/AndroidRuntime(22705): ]
05-20 22:22:04.319: E/AndroidRuntime(22705): at org.opencv.imgproc.Imgproc.cvtColor_1(Native Method)
05-20 22:22:04.319: E/AndroidRuntime(22705): at org.opencv.imgproc.Imgproc.cvtColor(Imgproc.java:3743)
05-20 22:22:04.319: E/AndroidRuntime(22705): at com.emsir.BarCodeV12.cam.TakePictureActivity.onActivityResult(TakePictureActivity.java:91)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.app.Activity.dispatchActivityResult(Activity.java:3908)
05-20 22:22:04.319: E/AndroidRuntime(22705): at android.app.ActivityThread.deliverResults(ActivityThread.java:2532)
05-20 22:22:04.319: E/AndroidRuntime(22705): ... 11 more
thanks sir Rui Marques