2017-05-07 82 views
0

我在將位圖轉換爲Base64時遇到問題。我想從相機或畫廊發佈一些圖片。當我把它們作爲圖像,我必須轉換爲base64,但是當我得到字符串並使用http://codebeautify.org/base64-to-image-converter進行測試來查看我的圖像時。結果看起來質量很差。我該如何解決這個請幫我? 這裏是我的代碼:Android將位圖轉換爲Base64字符串問題

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 
    switch(requestCode) 
    { 
     case 0: 
      if(resultCode == RESULT_OK) 
      { 
       Bundle extras = imageReturnedIntent.getExtras(); 
       Bitmap selectedImage = (Bitmap)extras.get("data"); 
       secilenImage.setImageBitmap(selectedImage); 
       String encodedImage; 
       ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
       try 
       { 
        selectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream); 
        byte[] b = stream.toByteArray(); 
        encodedImage = Base64.encodeToString(b, Base64.DEFAULT); 
        images.add(i, encodedImage); 
        Log.d("StringForCamera: ", encodedImage); 
        stream.close(); 
       } 
       catch(IOException e) 
       { 
        e.printStackTrace(); 
       } 
       secilenImage.setImageBitmap(selectedImage); 
       secilenImage.setEnabled(false); 
      } 
      break; 
     case 1: 
      if(resultCode == RESULT_OK) 
      { 
       Uri imageUri = imageReturnedIntent.getData(); 
       Bitmap selectedImage = null; 
       String encodedImage; 
       try 
       { 
        selectedImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri); 
        ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream(); 
        selectedImage.compress(Bitmap.CompressFormat.PNG, 100, byteArrayBitmapStream); 
        byte[] b = byteArrayBitmapStream.toByteArray(); 
        encodedImage = Base64.encodeToString(b, Base64.NO_WRAP); 
        images.add(i, encodedImage); 
        Log.d("StringForGallery: ",encodedImage); 
       } 
       catch(IOException e) 
       { 
        e.printStackTrace(); 
       } 
       secilenImage.setImageBitmap(selectedImage); 
       secilenImage.setEnabled(false); 
      } 
      break; 
    } 
    ++i; 
} 

回答

0
(Bitmap)extras.get("data"); 

也就是說只有圖像的縮略圖。因此質量低下。

+0

你好,謝謝你的回答。那麼我如何從相機獲取圖像? 編輯:我有相同的問題,在畫廊上。 –

+0

Thete是數以百計的檢查在互聯網和本網站上用相機獲取圖片。你的問題經常被報道。只是谷歌的使用意圖。 – greenapps

相關問題