фото в полоску / поцарапано (миниатюра вид идеально) - PullRequest
1 голос
/ 03 апреля 2012

Мое приложение захватывает и сохраняет фотографию в определенном каталоге.Проблема в том, когда я иду в галерею, чтобы открыть захват.Просмотр миниатюр идеальный, но при открытии фотографии с помощью HTC Player фотография чередуется / поцарапана.

Я использую Activity, которая реализует SurfaceHolder.Callback.

    PictureCallback myJpeg = new PictureCallback() {
     private boolean compress;

    public void onPictureTaken(byte[] arg0, Camera arg1) { 

            File path = getPath();
            File file = getName(path, imageNum);
            imageNum ++; 

            try {
                if(!path.exists())
                    path.mkdirs();


                OutputStream imageFileOS = new FileOutputStream(file);
                    imageFileOS.write(arg0);
                imageFileOS.close();


                MediaScannerConnection.scanFile(getApplicationContext(),
                        new String[] { file.toString() }, null,
                        new MediaScannerConnection.OnScanCompletedListener() {
                    public void onScanCompleted(String path, Uri uri) {
                        Log.i("ExternalStorage", "Scanned " + path + ":");
                        Log.i("ExternalStorage", "-> uri=" + uri);
                    }
                });


            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            if(imageNum < numDisp)
                myCamera.startPreview();
            else{ 
                goToViewCapture(file);
            }

     }

};

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    try{

        if(myPreviewRunning){
            myCamera.stopPreview();
            myPreviewRunning = false;
        }

        Camera.Parameters p = myCamera.getParameters();
        p.setPreviewSize(width,height);

        myCamera.setParameters(p);
        myCamera.setPreviewDisplay(holder);
        myCamera.startPreview();
        myPreviewRunning = true;

    }catch(Exception e){e.printStackTrace();} 
}

public void surfaceCreated(SurfaceHolder holder) {
    myCamera = Camera.open(); 

    try {
        Camera.Parameters parameters = myCamera.getParameters();
        parameters.set("jpeg-quality", 70);
        parameters.setPictureFormat(PixelFormat.JPEG);
        myCamera.setParameters(parameters);
        myCamera.setPreviewDisplay(holder);

    } catch (IOException exception) {

        myCamera.release();
    }
    //myCamera.startPreview();
}

public void surfaceDestroyed(SurfaceHolder holder) { 

    myCamera.stopPreview(); 
    myPreviewRunning = false;
    myCamera.release();
    myCamera = null;

}

Спасибо !!!

РЕШЕНИЕ:

прокомментируйте эту строку -> //p.setPreviewSize(width,height);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...