title: SWT Image to/from String
body: <p>I am trying to convert an SWT Image to String and vice versa:</p>
  
  <p>To String:</p>
  
  <pre><code>Display display = new Display();
  final Image image = new Image(display, "c:\test.png");
   // Looks good
  showImage(image ,600,400);
  ImageData imageData = testImage.getImageData();
  byte[] data = imageData.data;
  String imageString = new String(Base64.encode(data));
  </code></pre>
  
  <p>Back to image:</p>
  
  <pre><code>byte[] decode = Base64.decode(imageString.getBytes());
  decode.toString();
  Image c_img = new Image(Display.getCurrent(), stringToInputStream(decode.toString()));
   // Throws exception.
  showImage(c_image ,600,400);
  </code></pre>
  
  <p>where:</p>
  
  <pre><code>  private static void showImage(final Image image, int w, int h) {
      Display display = new Display();
      Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.DOUBLE_BUFFERED);
      shell.setLayout(new FillLayout());
      shell.addListener(SWT.Paint, new Listener() {
        public void handleEvent(Event e) {
          GC gc = e.gc;
          int x = 10, y = 10;
          gc.drawImage(image, x, y);
          gc.dispose();
        }
      });
      shell.setSize(w, h);
      shell.open();
      while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
          display.sleep();
      }
      if (image != null &amp;&amp; !image.isDisposed()) {
        image.dispose();
      }
      display.dispose();
    }
  
  
    private static InputStream stringToInputStream(String input) {
      InputStream is = null;
      try {
        is = new ByteArrayInputStream(input.getBytes("UTF-8"));
      } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
      }
      return is;
    }
  </code></pre>
  
  <p>The error when showing the image from String is:</p>
  
  <pre><code>org.eclipse.swt.SWTException: Unsupported or unrecognized format
      at org.eclipse.swt.SWT.error(SWT.java:4083)
      at org.eclipse.swt.SWT.error(SWT.java:3998)
      at org.eclipse.swt.SWT.error(SWT.java:3969)
      at org.eclipse.swt.internal.image.FileFormat.load(FileFormat.java:82)
      at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:130)
      at org.eclipse.swt.graphics.ImageDataLoader.load(ImageDataLoader.java:22)
      at org.eclipse.swt.graphics.ImageData.&lt;init&gt;(ImageData.java:331)
      at org.eclipse.swt.graphics.Image.&lt;init&gt;(Image.java:545)
  </code></pre>
  
  <p>Am I the first to do this? Or are there some examples showing how this should be done properly?</p>