Monday, December 28, 2009

Image decode using GWT

In some cases you would have to decode the image which been encoded. in GWT url decode can be done easily as they have an APi : URL.decode(String encodedURL). Image decode can be done by following way.


import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.RootPanel;

public class ImageDecode implements EntryPoint {   
    public void onModuleLoad() {
       
        Image image = new Image("data:image/png;base64,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
tYNCuC/qtyOnYN6XwMAAAAASUVORK5CYII=");
        RootPanel.get().add(image);
    }
}

The highlighted text does the job of decoding in base64 format, Sometimes if you want to pass the encode object which contains Image for decoding cannot be done if it exceeds certain  size. As a Test App I copied the response encoded image here directly as input by not referring any object.

Hope this  post may help full for some one.

Cheers,
Venkat

No comments: