apurbagiri
apurbagiri

Reputation: 45

I'm trying to simply capture an image with Camera using an activity and finish the activity as soon as it is clicked

I'm trying to capture an image using Android Camera via simple activity.

Image is clicked and stored. But the problem is, image is either distorted or fragments of older image is concatenated with the currently clicked image. Image is too dark. Here's the CODE : -

public class Cameras extends Activity {
    public Camera camera;

    @Override

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        camera=Camera.open();
        camera.lock();
        Parameters parameters = camera.getParameters();
        parameters.setJpegQuality(1);
        parameters.setJpegThumbnailQuality(1);
        parameters.setJpegThumbnailSize(0,0);
        parameters.setSceneMode("night");
        parameters.setFocusMode("fixed");
        parameters.setPictureSize(640,480);
        camera.setParameters(parameters);
        camera.takePicture(null,null, jpegCallback);
    }


    PictureCallback jpegCallback = new PictureCallback() { // <8>
        public void onPictureTaken(byte[] data, Camera camera) {
          FileOutputStream outStream = null;
          try {
            // Write to SD Card
            outStream = new FileOutputStream(String.format("/sdcard/%d.jpg",System.currentTimeMillis())); // <9>
            outStream.write(data);
            outStream.close();
            camera.unlock();
            camera.release();
            Toast.makeText(Cameras.this,"Picture Taken",Toast.LENGTH_SHORT).show();
          } catch (FileNotFoundException e) { 
            e.printStackTrace();
          } catch (IOException e) {
            e.printStackTrace();
          } finally 
          {

          }
        }
      };


}

Please help regarding this... I want a neat and clean small size image every time i execute the code.

Thanks... :-)

Upvotes: 1

Views: 2376

Answers (1)

Mikpa
Mikpa

Reputation: 1922

    parameters.setJpegQuality(1);
    parameters.setJpegThumbnailQuality(1);

You are requesting very low quality. Try using higher values for quality (like 70)

Upvotes: 2

Related Questions