Problem mit Image Verzerrungen

Stigma

Gesperrt
Guten Abend Tutorials User,

Das Progremm sollte eigentlich das Bild verzerren. Genau dies tut es aber nicht.

Bildbetrachter_Verzerren
Code:
import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class Bildbetrachter_Verzerren extends JFrame {

	PanelVonDerGrafik PanelGrafik = null;

	public Bildbetrachter_Verzerren() {
		ImageIcon icon = new ImageIcon("..//!Bilder//Diashow//133.jpg");

		// das ImagePanel anzeigen
		PanelGrafik = new PanelVonDerGrafik(icon.getImage());
		getContentPane().add(PanelGrafik, BorderLayout.CENTER);

		this.setBackground(Color.BLACK);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public static void main(String[] args) {
		Bildbetrachter_Verzerren fenster = new Bildbetrachter_Verzerren();
		fenster.setSize(fenster.getToolkit().getScreenSize());
		fenster.setVisible(true);
	}
}


PanelVonDerGrafik_Verzerren
Code:
import java.awt.Color;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.geom.Rectangle2D;

public class PanelVonDerGrafik_Verzerren extends javax.swing.JPanel {
	private Image image;

	public PanelVonDerGrafik_Verzerren(Image image) {
		this.image = image;
	}

	// Grafik auf das Panel zeichnen
	public void paintComponent(Graphics graphics) {
		int fenster_X_Size = getSize().width / 2;
		int fenster_Y_Size = getSize().height / 2;

		int image_X_Size = image.getWidth(this) / 2;
		int image_Y_Size = image.getHeight(this) / 2;

		int x = fenster_X_Size - image_X_Size;
		int y = fenster_Y_Size - image_Y_Size;

		Graphics2D g2d = (Graphics2D) graphics;
		//Nullpunkt in die Mitte verlegen
		g2d.translate(getWidth()/2, getHeight()/2);
		
		//Koordinatensystem um 45° im Uhrzeigersinn rotieren
		g2d.rotate(Math.toRadians(45));
		//Rechteck gedreht zeichnen
		g2d.drawImage(image, -image.getWidth(this)/2, -image.getHeight(this)/2, this);
		
		
		
		/*
		// Das Graphics-Objekt in ein Graphics2D-Objekt casten
		Graphics2D g2d = (Graphics2D) graphics;
		g2d.setColor(Color.YELLOW);

		
		g2d.shear(0.5, 0);
		
		g2d.draw(new Rectangle2D.Double(50, 30, 80,50));
*/
//		g2d.drawImage(image, x, y, image.getWidth(this), image.getHeight(this),
//				this);
	}

}


Unschärfe Effekte, Rotationen und Farbferläufe bereiten mir keine Probleme.

Vielen Dank im Voraus!
 
Zuletzt bearbeitet:
Zurück