[Java] Java图像旋转代码 →→→→→进入此内容的聊天室

来自 , 2020-09-04, 写在 Java, 查看 109 次.
URL http://www.code666.cn/view/390e9825
  1. import java.awt.BorderLayout;
  2. import java.awt.Container;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Image;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8.  
  9. import javax.swing.ImageIcon;
  10. import javax.swing.JButton;
  11. import javax.swing.JFrame;
  12. import javax.swing.JPanel;
  13.  
  14. public class RotateImage {
  15.     public static void main(String[] args){
  16.         JFrame frame=new RotateImgFrame();
  17.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18.         frame.setVisible(true);
  19.     }
  20. }
  21.  
  22. class RotateImgFrame extends JFrame{
  23.     public RotateImgFrame(){
  24.         setTitle("RotateImgTest");
  25.         setSize(WIDTH,HEIGHT);
  26.         setAlwaysOnTop(true);
  27.  
  28.        final ImgPanel imgPanel=new ImgPanel();
  29.         imgPanel.setBounds(0, 0, 400, 400);
  30.         Container con=getContentPane();
  31.         con.add(imgPanel);
  32.  
  33.         antiRotateBtn=new JButton("逆转");
  34.         rotateBtn=new JButton("正转");
  35.         btnPanel=new JPanel();
  36.         btnPanel.add(rotateBtn);
  37.         btnPanel.add(antiRotateBtn);
  38.         con.add(btnPanel,BorderLayout.SOUTH);
  39.         antiRotateBtn.addActionListener(new ActionListener(){
  40.             @Override
  41.             public void actionPerformed(ActionEvent e) {
  42.                 // TODO Auto-generated method stub
  43.                 imgPanel.setRotate(imgPanel.getRotate()-Math.PI/2);
  44.                 imgPanel.repaint();
  45.             }
  46.         });
  47.         rotateBtn.addActionListener(new ActionListener(){
  48.             @Override
  49.             public void actionPerformed(ActionEvent e) {
  50.                 // TODO Auto-generated method stub
  51.                 imgPanel.setRotate(imgPanel.getRotate()+Math.PI/2);
  52.                 imgPanel.repaint();
  53.             }
  54.         });
  55.     }
  56.  
  57.     public static final int WIDTH=400;
  58.     public static final int HEIGHT=450;
  59.     private JPanel btnPanel;
  60.     private JButton antiRotateBtn;
  61.     private JButton rotateBtn;
  62. }
  63.  
  64. class ImgPanel extends JPanel{
  65.  
  66.     public void paintComponent(Graphics g){
  67.         Graphics2D g2=(Graphics2D) g;
  68.         g.fillRect(0, 0, 400, 400);
  69.         g2.rotate(rotate, 200, 200);
  70.  
  71.         image=new ImageIcon("src/test.jpg").getImage();
  72.         int imgW=image.getWidth(this);
  73.         int imgH=image.getHeight(this);
  74.         g2.drawImage(image, (400-imgW)/2, (400-imgH)/2,this);
  75.         g2.dispose();
  76.     }
  77.     public Image getImage(){
  78.         return image;
  79.     }
  80.     public double getRotate(){
  81.         return rotate;
  82.     }
  83.     public void setRotate(double rotate){
  84.         this.rotate=rotate;
  85.     }
  86.  
  87.     private Image image;
  88.     private double rotate=0;
  89. }
  90. //源代码片段来自云代码http://yuncode.net
  91.                        

回复 "Java图像旋转代码"

这儿你可以回复上面这条便签

captcha