package com.moob;
import java.nio.ByteBuffer;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.hardware.Camera;
import android.hardware.Camera.AutoFocusCallback;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.itwizard.mezzofanti.OCR;
public class AR_dniActivity extends Activity {
private static final int CAMERA_REQUEST = 1888;
/** Called when the activity is first created. */
private static final String SDCARD_TEMP_JPG = "/mnt/sdcard/DCIM/temp_demotival.jpg";
public TextView texto;
public FrameLayout fl;
public Preview preview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
fl=(FrameLayout) findViewById(R.id.frameLayout1);
texto=(TextView) findViewById(R.id.textView1);
texto.setText(OCR.get().libVer());
// preview = new Preview(this);
// fl.addView(preview);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
int bytes = photo.getWidth()*photo.getHeight()*4; //calculate how many bytes our image consists of. Use a different value than 4 if you don't use 32bit images.
ByteBuffer buffer = ByteBuffer.allocate(bytes); //Create a new buffer
photo.copyPixelsToBuffer(buffer); //Move the byte data to the buffer
byte[] array = buffer.array();
String str=OCR.get().ImgOCRAndFilter(array, photo.getWidth(), photo.getHeight(), photo.getDensity());
texto.setText("-->"+str);
}
}
public void clickOCR(View target)
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
public void __clickOCR(View target)
{
Log.d("TAG","tratar imagen");
/** Handles data for raw picture */
PictureCallback rawCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
Log.d("TAG", "onPictureTaken - raw");
// texto.setText("Texto modificado");
Bitmap bm=BitmapFactory.decodeByteArray(data, 0, data.length);
texto.setText(OCR.get().ImgOCRAndFilter(data,
bm.getWidth(),
bm.getHeight(), bm.getDensity()));
}
};
ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {
// Log.d(TAG, "onShutter'd");
}
};
/** Handles data for jpeg picture */
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
/* FileOutputStream outStream = null;
try {
outStream = new FileOutputStream(SDCARD_TEMP_JPG);
outStream.write(data);
outStream.flush();
outStream.close();
// Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
// Log.d(TAG, "onPictureTaken - jpeg");*/
}
};
preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
}
AutoFocusCallback myAutoFocusCallback = new AutoFocusCallback(){
@Override
public void onAutoFocus(boolean arg0, Camera arg1) {
// TODO Auto-generated method stub
Log.d("TAG", "on autofocus");
// .setEnabled(true);
}};
/* @Override
protected void onStart() {
Log.d("OOPPS","onStart!");
super.onStart();
if(preview.camera==null) {
preview.camera = Camera.open();
Camera.Parameters parameters = preview.camera.getParameters();
parameters.setJpegQuality(50);
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
preview.camera.setParameters(parameters);
preview.camera.startPreview();
preview.camera.autoFocus(myAutoFocusCallback);
}
else
{
preview.camera.release();
preview.camera.open();
preview.camera.autoFocus(myAutoFocusCallback);
preview.requestLayout();
}
}
@Override
protected void onStop() {
Log.d("OOPPS","onStop!");
super.onStop();
if (preview.camera != null) {
preview.camera.release();
preview.camera = null;
}
}
*/
}