2015-11-18 53 views
1

您好,我正在通過基地64編碼和解碼與Android圖像處理。我需要發送一個編碼的基地64字符串到服務器作爲一個字符串。當我在android系統側試了一下,我可以把它解碼成原始image.and我的解碼和編碼如下Android基地64編碼字符串不顯示實際圖像

public void base(Bitmap bitmap) 
    { 
     ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); 
     byte[] byteArray = byteArrayOutputStream .toByteArray(); 
     String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT); 
     toimag(encoded); 
     String a=encoded.replaceAll("\\s+",""); 
     Log.i("strrr",a); 
    } 

    public void toimag(String encodedImage) 
    { 
     byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); 
     Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
     logo.setImageBitmap(decodedByte); 
    } 

,但我不能抽到使用http://www.askapache.com/online-tools/base64-image-converter/實際圖像。它只顯示我的實際圖像的一部分。這是我的基地64字符串

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 

我該如何解決這個問題?這個編碼字符串有問題嗎?請幫忙。在此先感謝:)

+0

你在做什麼'字符串A = encoded.replaceAll( 「\\ S +」, 「」) ;'? –

+0

這是用於testing.remove所有空格。我沒有使用該字符串 – UserAndroid

+0

你從來沒有解釋過這個問題。清楚地說明你的意圖 –

回答

1

看來你是從logcat中剪切和粘貼。 logcat會截斷長消息,因此您不應該依賴它來複制大量數據。您應該將base64字符串保存到文件中,然後嘗試使用該文件進行驗證。

+0

hello。某些設備不允許寫入文件。我使用Q-mobile測試寫入文件,然後搜索許多許多帖子,但無法在設備中創建文本文件(內部存儲) – kemdo

1

對於圖像編碼爲Base64

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); 
byte[] b = baos.toByteArray(); 
String imageEncode = Base64.encodeToString(b, 
Base64.DEFAULT); 

對於解碼圖像

byte[] decodedByte = Base64.decode(imageEncode, 0); 
Bitmap newBitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); 
logo.setImageBitmap(newBitmap);