Draw Images Example : Image « SWT JFace Eclipse « Java






Draw Images Example

Draw Images Example

/******************************************************************************
 * All Right Reserved. 
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * 
 * Created on 2004-4-19 10:44:37 by JACK
 * $Id$
 * 
 *****************************************************************************/



import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.ImageLoader;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

/**
 * 
 */
public class DrawImages {
  Display display = new Display();
  Shell shell = new Shell(display);

  public DrawImages() {
    shell.setLayout(new FillLayout());
    
    Canvas canvas = new Canvas(shell, SWT.NULL);
    
    final Image image = new Image(display, "java2s.gif");
    
    canvas.addPaintListener(new PaintListener() {
      public void paintControl(PaintEvent e) {
        e.gc.drawImage(image, 10, 10);
        e.gc.drawImage(image, 0, 0, 100, 100, 200, 10, 200, 50);
        
      }
    });
    
    shell.setSize(430, 200);
    shell.open();
    //textUser.forceFocus();
    
    captureControl(canvas, "canvas.bmp");

    // Set up the event loop.
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        // If no more entries in event queue
        display.sleep();
      }
    }

    display.dispose();
  }
  
  /**
   * Captures the specified control and saves the result into a file in the BMP format.
   * @param control
   * @param fileName
   */
  public static void captureControl(Control control, String file) {
    GC gc = new GC(control);
    Image image = new Image(control.getDisplay(), control.getSize().x, control.getSize().y);
    gc.copyArea(image, 0, 0);
    ImageLoader loader = new ImageLoader();
    loader.data = new ImageData[] { image.getImageData() };
    loader.save(file, SWT.IMAGE_BMP);
    gc.dispose();
  }

  private void init() {

  }

  public static void main(String[] args) {
    new DrawImages();
  }
}


           
       








Related examples in the same category

1.Image Analyzer in SWTImage Analyzer in SWT
2.Set icons with different resolutionsSet icons with different resolutions
3.Capture a widget image with a GCCapture a widget image with a GC
4.Create an icon (in memory)Create an icon (in memory)
5.Display an animated GIFDisplay an animated GIF
6.Rotate and flip an imageRotate and flip an image
7.Display an image in a groupDisplay an image in a group
8.SWT and Image
9.Clip ImageClip Image
10.Double BufferDouble Buffer
11.Image BasicsImage Basics
12.File Icon Util
13.Demonstrates how to draw imagesDemonstrates how to draw images
14.scroll an image (flicker free, no double buffering)scroll an image (flicker free, no double buffering)
15.Transfer type to transfer SWT ImageData objects.