2017-09-18 244 views
0

我試圖保存我的位圖文件爲PNG到我的內部存儲 我該怎麼做?(Android Studio)如何將位圖保存到內部存儲?

我的代碼生成QR代碼: -

public void createQRCode(String qrCodeData, String charset, Map hintMap, int qrCodeheight, int qrCodewidth) { 
    Bitmap bitmap = null; 
    try { 
     //generating qr code in bitmatrix type 
     BitMatrix matrix = new MultiFormatWriter().encode(new String(qrCodeData.getBytes(charset), charset), BarcodeFormat.QR_CODE, qrCodewidth, qrCodeheight, hintMap); 
     //converting bitmatrix to bitmap 
     int width = matrix.getWidth(); 
     int height = matrix.getHeight(); 
     int[] pixels = new int[width * height]; 
     // All are 0, or black, by default 
     for (int y = 0; y < height; y++) { 
      int offset = y * width; 
      for (int x = 0; x < width; x++) { 
       pixels[offset + x] = matrix.get(x, y) ? BLACK : WHITE; 
      } 
     } 

     bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 
     bitmap.setPixels(pixels, 0, width, 0, 0, width, height); 
     qrImageView.setImageBitmap(bitmap); 

    } catch (Exception er) { 
     Log.e("QrGenerate", er.getMessage()); 
    } 

} 

我想生成的QR碼的位圖保存到我的內部存儲,例如說,在DCIM文件夾,我想建立一個新文件夾「二維碼」,然後我想要將我的位圖保存爲「QRCode1.png」

我該如何做到這一點?

我試過很多教程和他們都不爲我工作還是我做錯了,也許

PS

我已經添加寫權限到我的AndroidManifest文件

回答

0

嘗試這樣做,然後使用數據將其保存在本地設備中。

saveImageBitmap(Bitmap bitmap){ 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos); 
    byte[] data = baos.toByteArray(); 

    //do whatever you want to save this bitmap file 
} 

希望能幫到你!這會將位圖轉換爲.jpg格式,然後將其保存在文件中。

+0

感謝您的幫助 我做了一個愚蠢的錯誤 作爲即時通訊使用棉花糖,我不得不使用運行時權限,使其工作大聲笑 –

+0

很高興來幫助你!保持學習 –

相關問題