Rumah > Java > javaTutorial > Bagaimana untuk Mencapai Putaran Imej Secara Berperingkat dalam Swing?

Bagaimana untuk Mencapai Putaran Imej Secara Berperingkat dalam Swing?

Susan Sarandon
Lepaskan: 2024-12-03 15:41:12
asal
247 orang telah melayarinya

How to Achieve Gradual Image Rotation in Swing?

Bagaimanakah Memutar Imej Secara Berperingkat dalam Ayunan?

Swing ialah perpustakaan antara muka pengguna grafik untuk bahasa pengaturcaraan Java yang menyediakan banyak kelas dan antara muka untuk mencipta antara muka pengguna. Satu tugas biasa dalam Swing ialah memutar imej. Ini boleh dilakukan menggunakan kelas AffineTransform.

Untuk memutar imej secara beransur-ansur dalam Swing, anda perlu:

  1. Mencipta objek AffineTransform.
  2. Terjemahkan asal daripada penjelmaan ke tengah imej.
  3. Putar penjelmaan mengikut yang dikehendaki sudut.
  4. Terjemahkan asal usul transformasi kembali ke kedudukan asal.
  5. Gunakan transformasi pada imej.

Berikut ialah contoh kod yang menunjukkan cara untuk memutar imej secara beransur-ansur dalam Swing:

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.geom.AffineTransform;

public class RotateImage {

    public static void main(String[] args) {
        // Create an image.
        BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_ARGB);

        // Create an AffineTransform object.
        AffineTransform transform = new AffineTransform();

        // Translate the origin of the transform to the center of the image.
        transform.translate(image.getWidth() / 2, image.getHeight() / 2);

        // Rotate the transform by the desired angle.
        transform.rotate(Math.toRadians(45));

        // Translate the origin of the transform back to the original position.
        transform.translate(-image.getWidth() / 2, -image.getHeight() / 2);

        // Apply the transform to the image.
        Graphics2D g2d = image.createGraphics();
        g2d.drawImage(image, transform, null);
        g2d.dispose();

        // Display the transformed image.
        JFrame frame = new JFrame();
        frame.add(new JLabel(new ImageIcon(image)));
        frame.pack();
        frame.setVisible(true);
    }
}
Salin selepas log masuk

Kod ini akan mencipta imej baharu dan memutarkannya sebanyak 45 darjah. Imej itu kemudiannya akan dipaparkan dalam JFrame.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Putaran Imej Secara Berperingkat dalam Swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan