我在論壇中搜索這個,但沒有找到合適的答案。我發現非常相似的主題,但沒有幫助。到base64的大圖像
我有問題,當我嘗試編碼大型圖像文件爲base64 ..我嘗試使用低質量的,但我再次有大文件的問題..我用:
public String BitMapToString(Bitmap bitmap,String Ext){
ByteArrayOutputStream baos=new ByteArrayOutputStream();
if(Ext.equals("png")){
bitmap.compress(Bitmap.CompressFormat.PNG, 50, baos);
}else{
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);
}
byte [] b=baos.toByteArray();
String temp = null;
try {
System.gc();
temp = Base64.encodeToString(b, Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
} catch (OutOfMemoryError e) {
baos = new ByteArrayOutputStream();
if (Ext.equals("png")) {
bitmap.compress(Bitmap.CompressFormat.PNG, 20, baos);
} else {
bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
}
b = baos.toByteArray();
temp = Base64.encodeToString(b, Base64.DEFAULT);
Log.e("EWN", "Out of memory error catched");
}
return temp;
}
現在這個工作痘痘當我使用質量低於100(在本例中爲50或20)時,我可以使用litle大文件(也許是3 MB),但這不是很好的解決方案,因爲我仍然遇到大小爲10的問題(例如< 1 MB) MB例如...程序只是打破..
我想轉換成塊,但這不適合我...
謝謝你的回答。
你打算怎麼處理'String temp'?如果您打算將它寫入某處,可以使用流式base64編碼器。例如[Base64OutputStream](http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Base64OutputStream.html) – tofi9 2015-02-09 06:32:45
我需要發送它與ksoap2到webservice – Frink 2015-02-09 06:33:31
我不知道'ksoap2'。它是否支持流式文件附件?請發佈能夠成功發佈小圖片的工作代碼。 – tofi9 2015-02-09 06:38:28