From 22484872fa7b875b7ba98760d5256bbe46557369 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 30 Nov 2012 18:41:46 +0400 Subject: [PATCH 1/2] Sample Tutorial-5 improved Aditional toasts added; Exception handling improved; Bitmap recycling added. --- .../samples/tutorial5/Sample5CameraControl.java | 11 ++++++++++- .../samples/tutorial5/SampleJavaCameraView.java | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java b/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java index 358d527b98..38b6dd7b78 100644 --- a/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java +++ b/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java @@ -20,6 +20,7 @@ import android.view.SurfaceView; import android.view.View; import android.view.View.OnTouchListener; import android.view.WindowManager; +import android.widget.Toast; public class Sample5CameraControl extends Activity implements CvCameraViewListener, OnTouchListener { private static final String TAG = "OCVSample::Activity"; @@ -100,6 +101,11 @@ public class Sample5CameraControl extends Activity implements CvCameraViewListen public boolean onCreateOptionsMenu(Menu menu) { List effects = mOpenCvCameraView.getEffectList(); + if (effects == null) { + Log.e(TAG, "Color effects are not supported by device!"); + return true; + } + mEffectMenuItems = new MenuItem[effects.size()]; int idx = 0; @@ -115,13 +121,16 @@ public class Sample5CameraControl extends Activity implements CvCameraViewListen public boolean onOptionsItemSelected(MenuItem item) { Log.i(TAG, "called onOptionsItemSelected; selected item: " + item); mOpenCvCameraView.setEffect((String) item.getTitle()); + Toast.makeText(this, mOpenCvCameraView.getEffect(), Toast.LENGTH_SHORT).show(); return true; } @Override public boolean onTouch(View v, MotionEvent event) { Log.i(TAG,"onTouch event"); - mOpenCvCameraView.takePicture(Environment.getExternalStorageDirectory().getPath() + "/sample_picture.jpg"); + String fileName = Environment.getExternalStorageDirectory().getPath() + "/sample_picture.jpg"; + mOpenCvCameraView.takePicture(fileName); + Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show(); return false; } } diff --git a/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/SampleJavaCameraView.java b/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/SampleJavaCameraView.java index fa33b8f4b7..8cbf312ba9 100644 --- a/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/SampleJavaCameraView.java +++ b/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/SampleJavaCameraView.java @@ -25,6 +25,10 @@ public class SampleJavaCameraView extends JavaCameraView { return mCamera.getParameters().getSupportedColorEffects(); } + public boolean isEffectSupported() { + return (mCamera.getParameters().getColorEffect() != null); + } + public String getEffect() { return mCamera.getParameters().getColorEffect(); } @@ -48,6 +52,7 @@ public class SampleJavaCameraView extends JavaCameraView { try { FileOutputStream out = new FileOutputStream(mPictureFileName); picture.compress(Bitmap.CompressFormat.JPEG, 90, out); + picture.recycle(); mCamera.startPreview(); } catch (Exception e) { e.printStackTrace(); From d550f953479d1ffb237526cbbb8c503a48a4c3b7 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Fri, 7 Dec 2012 14:46:53 +0400 Subject: [PATCH 2/2] Date and time added to saved file name. --- .../opencv/samples/tutorial5/Sample5CameraControl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java b/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java index 38b6dd7b78..ccc988a0cf 100644 --- a/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java +++ b/samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java @@ -1,5 +1,7 @@ package org.opencv.samples.tutorial5; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import java.util.ListIterator; @@ -9,6 +11,7 @@ import org.opencv.android.OpenCVLoader; import org.opencv.core.Mat; import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener; +import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.Environment; @@ -125,10 +128,14 @@ public class Sample5CameraControl extends Activity implements CvCameraViewListen return true; } + @SuppressLint("SimpleDateFormat") @Override public boolean onTouch(View v, MotionEvent event) { Log.i(TAG,"onTouch event"); - String fileName = Environment.getExternalStorageDirectory().getPath() + "/sample_picture.jpg"; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); + String currentDateandTime = sdf.format(new Date()); + String fileName = Environment.getExternalStorageDirectory().getPath() + + "/sample_picture_" + currentDateandTime + ".jpg"; mOpenCvCameraView.takePicture(fileName); Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show(); return false;