Search code examples
javaandroidbitmappngbmp

creating .bmp image file from Bitmap class


I've created an application that uses sockets in which the client receives the image and stores the data of the image in Bitmap class....

Can anyone please tell me how to create a file named myimage.png or myimage.bmp from this Bitmap object

String base64Code = dataInputStream.readUTF();
byte[] decodedString = null;
decodedString = Base64.decode(base64Code);
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0,decodedString.length);

Solution

  • Try following code to save image as PNG format

    try {
       FileOutputStream out = new FileOutputStream(filename);
       bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
    } catch (Exception e) {
       e.printStackTrace();
    }
    out.flush();
    out.close();
    

    Here, 100 is quality to save in Compression. You can pass anything between 0 to 100. Lower the digit, poor quality with decreased size.

    Note

    You need to take permission in Android Manifest file.

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    

    Edit

    To save your image to .BMP format, Android Bitmap Util will help you. It has very simple implementation.

    String sdcardBmpPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/sample_text.bmp";
    Bitmap testBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sample_text);
    AndroidBmpUtil bmpUtil = new AndroidBmpUtil();
    boolean isSaveResult = bmpUtil.save(testBitmap, sdcardBmpPath);