Gå til innhold

Rotere et bilde(Graphics2D og ImageIcon)


Anbefalte innlegg

Jeg har et bilde lagret i IIp(ImageIcon), men bildet blir ikke rotert...

 

btw, bildet er 50 x 50 pixler...

 

noen ideer?

 

public void paintComponent(Graphics g) {
 super.paintComponent(g);
 Graphics2D tf = (Graphics2D)g;
 if (true) {
 	tf.drawImage(IIp.getImage(), 0, 0,IIp.getImageObserver());
 } else {
 	tf.drawImage(IIn.getImage(), 0, 0,IIn.getImageObserver());
 }
 
 if (true) tf.rotate(Math.toRadians(180), 25,25);
}	

Lenke til kommentar
Videoannonse
Annonse

Hei

 

Kan hende alt du mangler er en updateUI().

 

Fikk fint til å snurre et bilde med denne koden:

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;

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

public class RotateIcon extends JFrame {
public RotateIcon(){
 //Image img0 = Toolkit.getDefaultToolkit().getImage("whatever.jpg");
 Image image = new ImageIcon(getClass().getResource("whatever.jpg")).getImage();
 ImageIcon icon = new ImageIcon(image);
 JButton btnImage = new JButton(icon);
 btnImage.addActionListener(new RotateImage(image, icon, btnImage));
 getContentPane().add(btnImage);
 setBounds(0, 0, 300, 200);
 setLocationRelativeTo(null);
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 setVisible(true);
 
}
public static void main(String[] args) {
 new RotateIcon();
}

private class RotateImage implements ActionListener {
 private Image image;
 private ImageIcon icon;
 private JButton btnImage;

 public RotateImage(Image image, ImageIcon icon, JButton btn) {
 	this.image = image;
 	this.icon = icon;
 	this.btnImage = btn;
 }

 public void actionPerformed(ActionEvent e) {
 	int h = image.getHeight(btnImage);
 	int w = image.getWidth(btnImage);
 	BufferedImage bImage = new BufferedImage(h, w, BufferedImage.TYPE_INT_RGB);
 	Graphics2D g2d = bImage.createGraphics();
 	g2d.translate(h, 0);
 	g2d.rotate(1.5708); // ca 90 grader
 	g2d.drawImage(image, 0, 0, w, h, btnImage);
 	icon = new ImageIcon(bImage);
 	btnImage.setIcon(icon);
 	image = bImage;
 }
}
}

 

Vennlig hilsen

Hv

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...