2010-06-18 41 views
5

我從一個xml文件通過jaxb獲得一個base64字節[],我不知道如何將其轉換回gwt圖像(如果我理解正確,基本上是一個基礎html img)。我如何轉換成適當的字符串?gwt base64 image

我的第一反應是到

public void onSuccess(final byte[] icon) { 
img.setUrl("data:image/png;base64,"+icon.toString()); 

但顯然不起作用。 任何幫助表示讚賞!

回答

6

如果你想使用data URIs(使用base64編碼) - 儘管IE < = 7不支持它,而IE8只允許高達32 kB - 您必須對圖像數據進行64位編碼。

有幾個Base64編碼器圍繞着您可以在服務器端使用:

String base64 = Base64Utils.toBase64(icon); 

然後將編碼的數據傳輸到客戶端。

如果您確實想要,也可以在客戶端使用編碼器,但這需要將java文件複製到客戶端源(如果您確保選擇的實現允許)。

0

您應該提供可用於獲取圖像的URL。我真的不認爲你的代碼會導致類似url的東西(類似於http://localhost/myimage.png,或者也許mywebapp/myimage.png ...)

+0

OP正在討論數據URI。該格式是有效的:http://en.wikipedia.org/wiki/Data_URI_scheme#Format(注意,它不適用於所有瀏覽器) – 2010-06-19 15:41:24

+0

你是對的... :) – markovuksanovic 2010-06-19 15:51:25

4
String b = "this should be a base64 encode string that was generated from an icon or byte[]"; 
Image image = new Image(); 
image.setUrl("data:image/png;base64,"+b); 

view.getPreviewTable().setWidget(14, 0, image); 

圖像是一個gwt圖像在這種情況下。