Я пытаюсь просто захватить изображение с помощью камеры, используя действие, и завершить действие, как только оно будет нажато - PullRequest
1 голос
/ 17 ноября 2010

Я пытаюсь сделать снимок с помощью камеры Android с помощью простого действия.

Изображение щелкается и сохраняется.Но проблема в том, что изображение либо искажено, либо фрагменты старого изображения объединяются с текущим нажатием на изображение.Изображение слишком темное.Вот код: -

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 
          {

          }
        }
      };


}

Пожалуйста, помогите с этим ... Я хочу аккуратное и чистое изображение небольшого размера каждый раз, когда я выполняю код.

Спасибо ...: -)

1 Ответ

2 голосов
/ 21 ноября 2010
    parameters.setJpegQuality(1);
    parameters.setJpegThumbnailQuality(1);

Вы запрашиваете очень низкое качество.Попробуйте использовать более высокие значения качества (например, 70)

...