Thumbnail generieren (SWT)

Hathor

Grünschnabel
Hallo,

habe da ein Problem. Ich möchte gern in einer Bildvorschau von einem gewählten Bild ein Thumbnail generieren und dann in einem Label anzeigen. Habe dies auch schon hinbekommen. Ich nutze dafür aber ein externes Programm (Iview). Nun möchte ich das aber ändern. Gibt es eine Möglichkeit ein Image zu laden und die Größe so zu maniplulieren, dass es etwa 64 x 48 Pixel groß. Außerdem müsste man dieses neugenerierte Bild dann auch noch abspeichern können.

Kann mir jemand helfen.
 
Hallo!

Versuchs mal so:
Code:
package de.tutorials;

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.layout.FillLayout;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ImageResizer {

	public static void main(String[] args) {

		final Display display = new Display();
		Shell shell = new Shell(display);
		shell.setText("ImageResizer");
		shell.setSize(320, 240);
		shell.setLayout(new FillLayout());
		Image img = new Image(display, "c:/Beispiel.jpg");
		final Image scaledImage = new Image(display, img.getImageData()
				.scaledTo(160, 120));
		final Canvas c = new Canvas(shell, SWT.NONE);
		c.addPaintListener(new PaintListener() {
			public void paintControl(PaintEvent e) {
				GC gc = new GC(c);
				gc.drawImage(scaledImage, 0, 0);
				gc.dispose();
			}
		});

		shell.open();

		while (!shell.isDisposed())
			if (!display.readAndDispatch())
				display.sleep();
		img.dispose();
		scaledImage.dispose();
	}
}

Dazu benötigst du das SWT.jar, JFace.jar, jafacetext.jar und das Platform.jar.

Gruß Tom
 
Hallo Tom,

ja das hilft mir weiter, muss nur mal sehen wie ich das bei mir einbinden kann, aber das klappt bestimmt. Danke.
 

Neue Beiträge

Zurück