Hello, I am using below code on my old Android 1.6 Mobile i m facing problem when i click the image button in my application image clicked and time to preview my image goes blur not showing image which i click only show destroy image like i click any Tv image. and it give me 2 Error :- *native_jpeg_encode: jpeg_encoder_encode failed.* 2. *jpeg encoding failed* Please any one help me Thanks !!!
*My Code is here:- * package com.info.police; import java.text.SimpleDateFormat; import java.util.Calendar; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.Paint; import android.graphics.PixelFormat; import android.hardware.Camera; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Button; public class TakePic extends Activity implements LocationListener { private static final String TAG = "Camera"; Camera camera; private SurfaceHolder previewHolder=null; private Camera mCamera=null; private SurfaceView preview=null; Button buttonClick , btnNew; LocationManager locationManager; double lat , lag; String dateNow,extStorageDirectory,ImgName,Path; public static final int LARGEST_WIDTH = 200; public static final int LARGEST_HEIGHT= 200; String PImgString ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Hide the window title. requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.cameralayout); preview=(SurfaceView)findViewById(R.id.preview); previewHolder=preview.getHolder(); previewHolder.addCallback(surfaceCallback); previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); Initialise(); btnNew.setEnabled(false); buttonClick.setOnClickListener(new BtnClickListener()); btnNew.setOnClickListener(new BtnNewClick()); Log.d(TAG, "onCreate'd"); setTitle("Tack Image"); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { //-- When we touch the screen, it will auto-focus again if(mCamera != null) { mCamera.autoFocus(new Camera.AutoFocusCallback(){ public void onAutoFocus(boolean success, Camera camera) { } } ); } return super.dispatchTouchEvent(ev); } private void Initialise() { buttonClick = (Button) findViewById(R.id.buttonClick); btnNew = (Button) findViewById(R.id.btnNew); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); } class BtnClickListener implements View.OnClickListener{ public void onClick(View v) { try { takePicture(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } buttonClick.setEnabled(false); btnNew.setEnabled(true); } } private void takePicture() throws InterruptedException { mCamera.takePicture(null, null, photoCallback); Thread.sleep(3000); } SurfaceHolder.Callback surfaceCallback=new SurfaceHolder.Callback() { public void surfaceCreated(SurfaceHolder holder) { mCamera=Camera.open(); try { mCamera.setPreviewDisplay(previewHolder); mCamera.setOneShotPreviewCallback(null); ColorMatrix cm = new ColorMatrix(); cm.setSaturation(.5f); //paint.setColorFilter(new ColorMatrixColorFilter(cm)); } catch (Throwable t) { //Log.e("PictureDemo-surfaceCallback","Exception insetPreviewDisplay()", t); //Toast.makeText(TakePic.this,t.getMessage(), Toast.LENGTH_LONG).show(); } } public void surfaceChanged(SurfaceHolder holder,int format, int width, int height) { Camera.Parameters parameters=mCamera.getParameters(); //parameters.setPreviewSize(100, 100); parameters.setPictureSize(100, 100);//parameters.setZoom(1); /*Not in 1.6*/ //parameters.setZoom(0); /*Not in 1.6*/ parameters.setPictureFormat(PixelFormat.JPEG); //parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); /*Not in 1.6*/ //parameters.setJpegQuality(100); /*Not in 1.6*/ mCamera.setParameters(parameters); mCamera.startPreview(); //-- Must add the following callback to allow the camera toautofocus. mCamera.autoFocus(new Camera.AutoFocusCallback(){ public void onAutoFocus(boolean success, Camera camera) { } } ); } public void surfaceDestroyed(SurfaceHolder holder) { if(mCamera != null){ mCamera.stopPreview(); mCamera.release(); mCamera=null; } } }; Camera.PictureCallback photoCallback=new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { ImgName = String.format("%d.jpg", System.currentTimeMillis()); //FileOutputStream outStream = null; try { byte[] imgBtye = data; ColorMatrix cm = new ColorMatrix(); float contrast = 2; float brightness = 0; cm.set(new float[] { contrast, 0, 0, 0, brightness,0, contrast, 0, 0, brightness,0, 0, contrast, 0, brightness, 0, 0, 0, contrast, 0 }); Paint paint = new Paint(); cm.setSaturation(2f); paint.setColorFilter(new ColorMatrixColorFilter(cm)); //Log.d(TAG, "onPictureTaken - wrote bytes: " + imgBtye.toString()); GetLocationService(); Intent i = new Intent(TakePic.this, AddDetail.class); PImgString = new String(imgBtye); i.putExtra("ImgString", PImgString); i.putExtra("Pimg", imgBtye); i.putExtra("lat", lat); i.putExtra("lag", lag); i.putExtra("IName", ImgName); startActivity(i); } finally { } } }; class BtnNewClick implements View.OnClickListener { public void onClick(View v) { mCamera.startPreview(); buttonClick.setEnabled(true); btnNew.setEnabled(false); } } public void convertDateToString() { Calendar currentDate = Calendar.getInstance(); SimpleDateFormat formatter= new SimpleDateFormat("yyyy/MM/dd"); dateNow = formatter.format(currentDate.getTime()); Log.d("Cueernt Date", "Current System Date" + dateNow); } private void GetLocationService() { locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if( location != null ) { lat = location.getLatitude(); lag = location.getLongitude(); Log.d("Current Location", "Current System Location" + lat + " : Lag " + lag); } else { Log.d("Current Location", "No Location Found"); } } public void onLocationChanged(Location arg0) { } public void onProviderDisabled(String arg0) { } public void onProviderEnabled(String provider) { } public void onStatusChanged(String provider, int status, Bundle extras) { } } -- Thanks and Regards, Ankit Kasliwal kasliwalankit2...@gmail.com +91-9300-940-136 -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en