2016-03-08 35 views
1

我試圖從圖庫中獲取圖像並將其發送到服務器。
我得到一個base64編碼的字符串,但它是一條細線,而不是整個圖像。

Base64編碼正在成爲一塊圖像

例如,我用Motobit解碼this random image.基於64位字符串我 工作正常。但是,編碼字符串,我從我的應用程序在同一圖像得到的是真的很小,而且在轉換爲圖像變得this.

這裏是我的代碼:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_create_profile); 


    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
    photoPickerIntent.setType("image/*"); 
    startActivityForResult(photoPickerIntent, SELECT_PHOTO); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
     case SELECT_PHOTO: 
      if(resultCode == RESULT_OK){ 
       try { 
        Uri selectedImage = imageReturnedIntent.getData(); 

        String imageStream = getRealPathFromURI(context, selectedImage); 
        Bitmap bitmap = BitmapFactory.decodeFile(imageStream); 

        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); 
        byte[] byteArray = byteArrayOutputStream .toByteArray(); 
        String encodedString = Base64.encodeToString(byteArray, Base64.DEFAULT); 

        Log.e(LOG_TAG, encodedString); 
       }catch (Exception e){ 
        e.printStackTrace(); 
       } 
      } 
    } 
} 

public String getRealPathFromURI(Context context, Uri contentUri) { 
    Cursor cursor = null; 
    try { 
     String[] proj = { MediaStore.Images.Media.DATA }; 
     cursor = context.getContentResolver().query(contentUri, proj, null, null, null); 
     int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } finally { 
     if (cursor != null) { 
      cursor.close(); 
     } 
    } 
} 



什麼使得我的encodedString只成爲圖像的一部分?謝謝!

+0

您未顯示如何解碼您的encodedString。那麼我們如何評論哪裏出了問題呢?這在哪裏出錯?你沒有告訴。你應該告訴字節數組的大小和字符串的長度。小嗎?確切地說。 – greenapps

+0

@greednapps我在這個網站解碼:http://codebeautify.org/base64-to-image-converter – CasMindspark

+0

@greenapps因爲當我把這種方式發送到服務器它會作爲一個損壞的圖像。 – CasMindspark

回答

1

也許字符串是正確的,但Log方法有字符限制。