SWT Image Pattern

lumo

Top Contributor
ich versuche gerade ein bild zu spiegeln und dann noch mit einem gradienten als hintergrund auszugrauen;

als vorlage für pattern (was den teil des gradienten übernimmt...) hab ich Snippet200 genommen.

spiegeln funktioniert bestens, doch das pattern wird nicht gemacht...

was genau in meinem control passiert:
image wird zugewiesen.
dann wird davon ein imgResized erstellt (skaliert)
dann wird davon ein imgReflection erstellt (skaliert & gespiegelt -> da soll noch der gradient rauf!)

und hier ist der code der alles zaubern sollte...
Java:
Point imgSize = new Point(getImage().getBounds().width, getImage()
				.getBounds().height);

		rectResized.x = borderSize;
		rectResized.y = borderSize;
		int imgWidth = getClientArea().width - borderSize * 2;
		rectResized.width = imgWidth;
		double ratioImg = (double) rectResized.width / (double) imgSize.x;
		rectResized.height = (int) Math.round(imgSize.y * ratioImg);

		rectReflection.x = borderSize;
		rectReflection.y = (borderSize + rectResized.height);
		rectReflection.width = imgWidth;
		rectReflection.height = (int) (rectResized.height * this.reflectionHeight);

		if (imgResized != null) {
			imgResized.dispose();
		}
		imgResized = new Image(getParent().getDisplay(), image.getImageData()
				.scaledTo(rectResized.width, rectResized.height));

		if (imgReflection != null) {
			imgReflection.dispose();
		}
		imgReflection = new Image(getParent().getDisplay(), imgResized
				.getImageData().scaledTo(rectReflection.width,
						rectReflection.height));
		// sample code from
		// [url=http://www.java2s.com/Tutorial/Java/0300__SWT-2D-Graphics/TransformReflectaroundthexyaxis.htm]Transform: Reflect around the x/y axis. : TransformSWT 2D GraphicsJava Tutorial[/url]

		int x = 0, y = 0;
		GC gc = new GC(imgReflection);
		// Reflect around the x axis.
		Transform tr = new Transform(getParent().getDisplay());
		tr.setElements(1, 0, 0, -1, 0, 0);
		gc.setTransform(tr);
		gc.drawImage(imgReflection, x, -1 * y - rectReflection.height);
		gc.setTransform(null);
		tr.dispose();
		// works till here!
		try {
			gc.setClipping(borderSize, rectResized.y + rectResized.height, rectReflection.width, rectReflection.height);
			Color background = gc.getBackground(); // white
			Pattern p = new Pattern(gc.getDevice(), borderSize, rectResized.y, borderSize, borderSize + rectResized.height + rectReflection.height, background, 0, background, 255);
			gc.setBackgroundPattern(p);
			gc.fillRectangle(borderSize, rectReflection.y, rectReflection.width, rectReflection.height);
			p.dispose();
			gc.setClipping(0,0,0,0);
		} catch (SWTException e) {
			// Advanced Graphics not supported.
			// This new API requires the Cairo Vector engine on GTK and Motif
			// and GDI+ on Windows.
			System.out.println(e.getMessage());
			gc.dispose();
			return;
		}
		gc.dispose();
kann jemand sehen was ich falsch mache?
 

lumo

Top Contributor
ist das nicht Swing? brauche das ganze auf SWT...

EDIT:
wenn ihr wollt könnt ihr den thread löschen (war wohl mehr schlamperei als sonst was - SORRY)
ich habs, hatte koordinaten falsch (argh!)
20x geschaut und immer noch drübergelesen... :oops:
Java:
Point imgSize = new Point(getImage().getBounds().width, getImage()
				.getBounds().height);

		rectResized.x = borderSize;
		rectResized.y = borderSize;
		int imgWidth = getClientArea().width - borderSize * 2;
		rectResized.width = imgWidth;
		double ratioImg = (double) rectResized.width / (double) imgSize.x;
		rectResized.height = (int) Math.round(imgSize.y * ratioImg);

		rectReflection.x = borderSize;
		rectReflection.y = (borderSize + rectResized.height);
		rectReflection.width = imgWidth;
		rectReflection.height = (int) (rectResized.height * this.reflectionHeight);

		if (imgResized != null) {
			imgResized.dispose();
		}
		imgResized = new Image(getParent().getDisplay(), image.getImageData()
				.scaledTo(rectResized.width, rectResized.height));

		if (imgReflection != null) {
			imgReflection.dispose();
		}
		imgReflection = new Image(getParent().getDisplay(), imgResized
				.getImageData().scaledTo(rectReflection.width,
						rectReflection.height));
		// sample code from
		// [url=http://www.java2s.com/Tutorial/Java/0300__SWT-2D-Graphics/TransformReflectaroundthexyaxis.htm]Transform: Reflect around the x/y axis. : TransformSWT 2D GraphicsJava Tutorial[/url]

		GC gc = new GC(imgReflection);

		try {
			// gc.setClipping(borderSize, rectResized.y + rectResized.height,
			// rectReflection.width, rectReflection.height);
			Color background = ColorCache.getBlack();// gc.getBackground(); //
														// white
			Pattern p = new Pattern(gc.getDevice(), 0, 0, 0,
					rectReflection.height, background, 0, background, 255);
			gc.setBackgroundPattern(p);
			gc.fillRectangle(0, 0, rectReflection.width, rectReflection.height);
			p.dispose();
			// gc.setClipping(0,0,0,0);
		} catch (SWTException e) {
			// Advanced Graphics not supported.
			// This new API requires the Cairo Vector engine on GTK and Motif
			// and GDI+ on Windows.
			System.out.println(e.getMessage());
			gc.dispose();
			return;
		}

		// Reflect around the x axis.
		Transform tr = new Transform(getParent().getDisplay());
		tr.setElements(1, 0, 0, -1, 0, 0);
		gc.setTransform(tr);
		gc.drawImage(imgReflection, 0, -rectReflection.height);
		gc.setTransform(null);
		tr.dispose();

		gc.dispose();
 
Zuletzt bearbeitet:

lumo

Top Contributor
das macht ziemlich genau das, was mein beispiel zum spiegeln auch macht;
und mittlerweile hab ichs gelöst (das problem lag beim pattern/gradient - nicht beim spiegeln)
trotzdem danke - thema erledigt :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
K JavaFX Bildergalerie aus Image Ordner laden AWT, Swing, JavaFX & SWT 3
JMölleri Swing Image wird unscharf dargestellt AWT, Swing, JavaFX & SWT 2
L AWT .gif image transparent machen AWT, Swing, JavaFX & SWT 3
kodela angezeigtes Image entfernen AWT, Swing, JavaFX & SWT 1
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
R Swing Background Image in JFrame implementieren AWT, Swing, JavaFX & SWT 40
T Swing Buffered Image anzeigen AWT, Swing, JavaFX & SWT 45
L Image kann nicht gefunden werden AWT, Swing, JavaFX & SWT 1
S Stretch Image in ImageView AWT, Swing, JavaFX & SWT 4
N Swing Image aus Web laden und in Icon umwandeln AWT, Swing, JavaFX & SWT 4
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
L JavaFX Image mit Blureffect AWT, Swing, JavaFX & SWT 2
Bluedaishi JavaFX Button Image aus Datenbank AWT, Swing, JavaFX & SWT 13
F javaxt.io.Image getBufferedImage liefert null AWT, Swing, JavaFX & SWT 1
Yjuq JavaFX Custom Control - Image resize AWT, Swing, JavaFX & SWT 0
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
T Image Loader lädt Bild nicht AWT, Swing, JavaFX & SWT 10
J 2D-Grafik Background Image Klasse AWT, Swing, JavaFX & SWT 14
Q AWT TicTacToe Image auf Button hinzufügen AWT, Swing, JavaFX & SWT 5
BreakdownBob Swing JLabel verschwindet hinter Image AWT, Swing, JavaFX & SWT 2
L JavaFX leeres weißes Image - javafx.scene.image.Image AWT, Swing, JavaFX & SWT 2
L JavaFX Image im ImageView auf Scroll Listener reagieren AWT, Swing, JavaFX & SWT 5
Naxon89 JavaFX Image wird nicht korrekt geladen AWT, Swing, JavaFX & SWT 3
W Javafx - Image soll sich mit der Camera mitbewegen AWT, Swing, JavaFX & SWT 1
B Graphics to Image AWT, Swing, JavaFX & SWT 3
L Image in anderes kopieren AWT, Swing, JavaFX & SWT 0
T Swing Image wird nicht geladen AWT, Swing, JavaFX & SWT 1
S JavaFX Image Skalierung in Scrollpane, Scrollpane resized sich nicht AWT, Swing, JavaFX & SWT 5
I Image im PopupMenu vom SystemTray AWT, Swing, JavaFX & SWT 8
F JavaFX Position von Image angeben/verändern AWT, Swing, JavaFX & SWT 2
M JavaFX Image View Würfel berechnen AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
F Swing Image einem Button hinzufügen AWT, Swing, JavaFX & SWT 5
B Resize von Image nach Resize von Button AWT, Swing, JavaFX & SWT 1
T Image aus "nicht-src-ordner" AWT, Swing, JavaFX & SWT 5
vodkaz (javafx) Image Problem AWT, Swing, JavaFX & SWT 2
C Image laden und Speichern - Image wird auf JPanel nicht angezeigt AWT, Swing, JavaFX & SWT 4
M Image in JTable einfügen AWT, Swing, JavaFX & SWT 9
M Image aus MS Access anzeigen lassen AWT, Swing, JavaFX & SWT 9
H Image im Array per Knopfdruck ändern AWT, Swing, JavaFX & SWT 6
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
G JavaFX Image vergrößern AWT, Swing, JavaFX & SWT 5
U Image mit Zeichenbereich rotieren AWT, Swing, JavaFX & SWT 3
P Speicherproblem SWT.Image in Nebula-Gallery AWT, Swing, JavaFX & SWT 3
L JavaFX: Bild in Image einlesen AWT, Swing, JavaFX & SWT 11
D Image soll langsam sichtbar werden AWT, Swing, JavaFX & SWT 4
D JLabel Image ausrichten AWT, Swing, JavaFX & SWT 2
Z Flackern trotz Offscreen Image / Doublebuffer, (+ Frage zu Pixelvergleich) AWT, Swing, JavaFX & SWT 25
bluerob Problem beim Image zeichnen via andere Klasse AWT, Swing, JavaFX & SWT 7
H Image Icon ersetzen AWT, Swing, JavaFX & SWT 8
I Image Button AWT, Swing, JavaFX & SWT 4
U IntBuffer zum Image konvertieren. AWT, Swing, JavaFX & SWT 9
S Eigene JComponent Image zeichnen AWT, Swing, JavaFX & SWT 3
T 2D-Grafik Slideshow (DoubleBuffering und Image transformieren/bewegen) AWT, Swing, JavaFX & SWT 6
K Swing Warum bleibt das Image immer gleich AWT, Swing, JavaFX & SWT 4
L Swing dynamisches Image-Panel in Layout einbinden AWT, Swing, JavaFX & SWT 10
R Image laden sehr langsam AWT, Swing, JavaFX & SWT 7
D Image.getScaledInstance() vs. Netzwerkverbindung??? AWT, Swing, JavaFX & SWT 2
reibi SWT Image viewer AWT, Swing, JavaFX & SWT 2
lumo SWT Image funktion auf ImageDaten AWT, Swing, JavaFX & SWT 9
A Applet .gif in applet Image nicht animiert angezeigt AWT, Swing, JavaFX & SWT 4
M Image wird nicht neugezeichnet nach dem Wechsel AWT, Swing, JavaFX & SWT 2
P Image mehrfach in ein BufferedImage zeichnen AWT, Swing, JavaFX & SWT 7
M Swing Image in JPanel als Componente AWT, Swing, JavaFX & SWT 2
P nicht sichtbares JPanel / JFrame als Image speichern AWT, Swing, JavaFX & SWT 3
T Image skaliert in Variable speichern AWT, Swing, JavaFX & SWT 6
S Image wird nicht (immer) in paintComponent gezeichnet? AWT, Swing, JavaFX & SWT 6
S Swing Image wird nicht geladen AWT, Swing, JavaFX & SWT 2
0 Mousecurser mit Image hinterlegen AWT, Swing, JavaFX & SWT 4
B Swing Drag&Drop mit Feedback (Image am Mauszeiger) AWT, Swing, JavaFX & SWT 7
N Java Choice Bilderausgabe - images - - image - AWT, Swing, JavaFX & SWT 2
D iText PdfPCell mit Image AWT, Swing, JavaFX & SWT 3
S 2D-Grafik Icon in Image (System Icons) AWT, Swing, JavaFX & SWT 2
S Button mit Image AWT, Swing, JavaFX & SWT 7
A Skaliertes Image pixelweise bearbeiten AWT, Swing, JavaFX & SWT 6
L Swing Image zur Laufzeit verändern AWT, Swing, JavaFX & SWT 6
F SWT GC drawText auf halbtransparentem Image AWT, Swing, JavaFX & SWT 21
G Swing JEdtitorPane und HTML Image Seite AWT, Swing, JavaFX & SWT 2
C Image mit Graphics2D zeichnen AWT, Swing, JavaFX & SWT 9
C Image performant skalieren AWT, Swing, JavaFX & SWT 5
D SWT Image Farbtiefe AWT, Swing, JavaFX & SWT 2
L Swing Auf unabhängiges Image-Objekt zeichnen AWT, Swing, JavaFX & SWT 8
lumo SWT Composite + Image + zeichnen AWT, Swing, JavaFX & SWT 4
V Ein Image als Button (nicht mit JButton(Icon)) AWT, Swing, JavaFX & SWT 5
D Image Viewer gesucht AWT, Swing, JavaFX & SWT 5
Kr0e Image schärfen AWT, Swing, JavaFX & SWT 2
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
T Image auf Image zeichnen AWT, Swing, JavaFX & SWT 2
E Warum ist offscreen (mit Image) schneller? AWT, Swing, JavaFX & SWT 11
G Swing Image speichern / 0 Byte AWT, Swing, JavaFX & SWT 7
H Image abspeichern AWT, Swing, JavaFX & SWT 4
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
W Image in jar einbauen AWT, Swing, JavaFX & SWT 20
Luk10 AWT Image und die Skalierung! AWT, Swing, JavaFX & SWT 3
L JPanel als Image speichern AWT, Swing, JavaFX & SWT 3
Developer_X Image Texels filtern AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben