Stigma
Gesperrt
Guten Abend Tutorials User,
Das Progremm sollte eigentlich das Bild verzerren. Genau dies tut es aber nicht.
Bildbetrachter_Verzerren
PanelVonDerGrafik_Verzerren
Unschärfe Effekte, Rotationen und Farbferläufe bereiten mir keine Probleme.
Vielen Dank im Voraus!
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: