Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change the image format from JPEG to PNG in android?

I am opening the default android device camera by passing an intent. So when an image is captured, by default, camera stores it in JPEG format. But I don't want to store them in lossy format. I want picture quality to be high. So how can i store it in PNG format?...

here goes my code to open camera :

Date dt = new Date();     
        int date=dt.getDate();  
        int hours = dt.getHours();     
        int minutes = dt.getMinutes();   
        int seconds = dt.getSeconds();     
        String curTime = date+"_"+hours + "_"+minutes + "_"+ seconds;  
         _path=Environment.getExternalStorageDirectory() +"/"+curTime+".jpg";  
        File file = new File( _path );  
        Uri outputFileUri = Uri.fromFile( file );  
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );  
    intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );  

 context.startActivityForResult(intent,0);  

Then handle onActivutyForResult (){....}

Thanks Sneha

like image 461
Smitha Avatar asked Dec 12 '11 12:12

Smitha


1 Answers

I haven't come across any method to make the camera save the file as PNG.

But you could convert the JPEG Image into PNG format.

try {
       FileOutputStream out = new FileOutputStream(filename);
       bmp.compress(Bitmap.CompressFormat.PNG, 100, out); //100-best quality
       out.close();
} catch (Exception e) {
       e.printStackTrace();
}

Note, this won't enhance the quality. You cannot "increase" the information in an image. This will only change the Image Format.

like image 86
st0le Avatar answered Oct 21 '22 01:10

st0le