Android: Resolution issue while saving image into gallery

Posted by Luca D'Amico on Stack Overflow See other posts from Stack Overflow or by Luca D'Amico
Published on 2013-10-22T15:39:30Z Indexed on 2013/10/22 15:54 UTC
Read the original article Hit count: 237

Filed under:
|

I've managed to programmatically take a photo from the camera, then display it on an imageview, and then after pressing a button, saving it on the Gallery. It works, but the problem is that the saved photo are low resolution.. WHY?!

I took the photo with this code:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

Then I save the photo on a var using :

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        if (requestCode == CAMERA_PIC_REQUEST) {  
            thumbnail = (Bitmap) data.getExtras().get("data"); 
        }  
    } 

and then after displaying it on an imageview, I save it on the gallery with this function:

public void SavePicToGallery(Bitmap picToSave, File savePath){


String JPEG_FILE_PREFIX= "PIC";
String JPEG_FILE_SUFFIX= ".JPG";


String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = JPEG_FILE_PREFIX + timeStamp + "_";
File filePath = null;
try {
    filePath = File.createTempFile(imageFileName, JPEG_FILE_SUFFIX, savePath);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
FileOutputStream out = null;
try {
    out = new FileOutputStream(filePath);
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
picToSave.compress(CompressFormat.JPEG, 100, out);
try {
    out.flush();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
try {
    out.close();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

//Add the pic to Android Gallery
String mCurrentPhotoPath = filePath.getAbsolutePath();

MediaScannerConnection.scanFile(this,
        new String[] { mCurrentPhotoPath }, null,
        new MediaScannerConnection.OnScanCompletedListener() {
        public void onScanCompleted(String path, Uri uri) {

        }
});


}

I really can't figure out why it lose so much quality while saved.. Any help please ? Thanks..

© Stack Overflow or respective owner

Related posts about android

Related posts about imageview