2010-06-18 2 views
5

jaxb를 통해 xml 파일에서 base64 바이트 []를 얻고 있습니다.이 이미지를 gwt 이미지로 변환하는 방법을 잘 모릅니다. 기본 이미지는 기본 HTML입니다. 적절한 문자열로 변환하려면 어떻게해야합니까?gwt base64 image

나의 첫번째 본능

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

로했지만, 분명이 작동하지 않습니다. 도움을 주시면 감사하겠습니다.

답변

6

data URIs (base64 인코딩 사용)을 사용하고 싶다면 - IE < = 7은 지원하지 않지만 IE8은 최대 32KB까지 허용합니다. 이미지 데이터를 base64 인코딩해야합니다.

주변에는 여러 개의 Base64 인코더가 있습니다. com.google.gwt.user.server.Base64Utils, 당신은 서버 측에서 사용할 수있는 :

String base64 = Base64Utils.toBase64(icon); 

그런 다음 클라이언트로 인코딩 된 데이터를 전송합니다.

절대적으로 원한다면 클라이언트 측에서 인코더를 사용할 수도 있지만 자바 파일을 클라이언트 소스에 복사해야합니다 (선택한 구현이 허용하는 경우).

0

이미지를 가져올 때 사용할 수있는 URL을 제공해야합니다. 나는 당신의 코드가 URL처럼 보이는 무언가 (아마도 http://localhost/myimage.png, 또는 아마 mywebapp/myimage.png ...)가 될 것이라고 생각하지 않는다.

+0

OP는 데이터 URI에 대해 이야기합니다. 형식은 유효합니다 : http://en.wikipedia.org/wiki/Data_URI_scheme#Format (모든 브라우저에서 작동하지 않습니다) –

+0

맞습니다. :) – markovuksanovic

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 이미지입니다.