Rumah  >  Artikel  >  Java  >  Program Java untuk memutar imej

Program Java untuk memutar imej

PHPz
PHPzke hadapan
2023-09-01 16:25:031261semak imbas

Fail imej boleh diputar mengikut arah jam atau lawan jam. Untuk memutar imej, anda perlu memuat turun fail imej rawak dan menyimpannya dalam mana-mana folder pada sistem anda. Selain itu, fail .pdf diperlukan dan selepas membuka fail imej yang dimuat turun, beberapa sudut boleh diputar dalam fail .pdf tertentu itu. Untuk putaran 90 darjah, titik penambat imej baharu boleh membantu kami melakukan putaran menggunakan transformasi terjemahan dalam Java. Titik penambat adalah pusat mana-mana imej tertentu.

Algoritma untuk Memutar Imej dengan Menggunakan Java

Kelas "AffineTransformOp" ialah cara paling mudah untuk memutar fail imej dengan menggunakan Java Seorang pengguna boleh memuatkan data imej sebagai Imej Buffer dan menggunakan operasi putar menggunakan titik anchor untuk menghasilkan BufferedImage yang baharu untuk langkah seterusnya disyorkan supaya menggunakan fail JPEG untuk operasi ini dengan JDeli(Jenis fail dengan julat luas).

Dengan memutar imej menggunakan program Java, pengaturcara boleh menggunakan beberapa kaedah terbina dalam seperti kelas BufferedImage dan Color c.

Menggunakan proses ini, kita perlu memuatkan imej ke dalam Java sebagai BufferedImage, kemudian gunakan fungsi yang sama untuk memutar imej dan menyimpan data ke fail baharu.

Sekarang, mari kita bincangkan algoritma untuk memahami operasi di atas dengan cara yang lebih luas -

  • Langkah 1 − Imej dibaca dan ditulis, dan diimport ke dalam kelas fail yang mewakili laluan direktori.

  • Langkah 2 − Gunakan IOException: tangani ralat.

  • Langkah 3 − Untuk memegang imej tertentu gunakan objek yang dipanggil BufferedImage, kaedah statik untuk menyimpan data dalam RAM.

  • Langkah 4 - Gunakan ImageIO untuk operasi baca dan tulis.

  • Langkah 5 − Gunakan kelas Graphics2D, untuk menghasilkan bentuk 2D.

Sintaks

Code declaration: public static Image rotate(Image image, double angle)

Mengikut tatabahasa ini, langkah-langkah untuk memahami adalah seperti berikut:

  • Parameter −

    • Imej − Lakukan operasi putaran

    • Sudut− Putaran arka

  • Kembalikan − fail imej yang diputar

Proses berikut boleh digunakan untuk memutar fail imej menggunakan program Java -

  • Langkah 1 − Muatkan Fail Imej Sebagai BufferedImage Dalam Persekitaran Java Untuk memuatkan fail imej dalam Java −

BufferedImage image = ImageIO.read(new File("C:\path\to\image name.jpg"));
  • Langkah 2− Putar imej sebanyak 90 darjah

  • Untuk memutar fail imej sebanyak 90 darjah ikut kod di bawah −

final double rads = Math.toRadians(90);
final Rotate rotate = new Rotate(90);
BufferedImage rotatedImage = rotate.apply(image);
  • Langkah 3 Simpan fail imej

Use Java ImageIO 
ImageIO.write(rotatedImage,"JPG",newFile("C:\path\to\rotatedImagename.jpg"));

Contoh

import java.awt.*;
import java.awt.image.BufferedImage;
public class Main {
   public static Image rotate(Image image, double angle) {
      BufferedImage bufImg = toBufferedImage(image);
      double sin = Math.abs(Math.sin(angle)), cos = Math.abs(Math.cos(angle));
      int w = bufImg.getWidth(), h = bufImg.getHeight();
      int neww = (int) Math.floor(w * cos + h * sin), newh = (int) Math.floor(h * cos + w * sin);
      BufferedImage result = new BufferedImage(neww, newh, Transparency.TRANSLUCENT);
      Graphics2D g = result.createGraphics();
      g.translate((neww - w) / 2, (newh - h) / 2);
      g.rotate(angle, w / 2, h / 2);
      g.drawRenderedImage(bufImg, null);
      g.dispose();
      return result;
   } 
   public static BufferedImage toBufferedImage(Image image) {
      if (image instanceof BufferedImage) {
         return (BufferedImage) image;
      }
      BufferedImage buff = new BufferedImage(image.getWidth(null), image.getHeight(null),
      BufferedImage.TYPE_INT_ARGB);
      Graphics2D g = buff.createGraphics();
      g.drawImage(image, 0, 0, null);
      g.dispose();
      return buff;
   }
}

Putaran Imej Menggunakan Fungsi BufferedImage

Dengan menggunakan kaedah sekatan cuba-tangkap, kami boleh mengendalikan pengecualian kerana ia mungkin mengganggu aliran kod.

  • Kelas dokumen - Kelas dokumen digunakan terutamanya untuk memaparkan dokumen PDF. Dalam program Java tertentu ini, kita perlu mencipta kelas dokumen menggunakan fungsi ie.documentobj. Fungsi ini digunakan untuk membuka dan menutup fail PDF.

  • Kelas Penulis PDF − Fungsi menyokong penjanaan fail PDF, XML,RTF untuk mengodkan putaran fail imej Fungsi direktori yang kami gunakan di sini ialah fileOutputStream() untuk mengendalikan fail bagi kod java.

  • .
  • Fungsi output − output.pdf ialah kelas fungsi yang mewakili output selepas melakukan operasi menggunakan kod Java. Fungsi ini membantu mendapatkan output input yang disediakan.

  • Fungsi −

    • image class.imgage.scaleToFit() - Fungsi ini membantu kami menyediakan saiz dalam pratetap fail input.

    • imageobj.setRotationDegrees() - pengekod boleh menggunakan ini untuk memutarkan imej dalam sudut tertentu Ia boleh digunakan sebagai parameter dalam kaedah yang kami gunakan.

    • documentobj.open() - Fungsi ini membantu pengguna membuka fail semasa beroperasi.

    • documentobj.close() - Gunakan fungsi ini untuk menutup fail .pdf.

Contoh

package JavaApplication29;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;

public class JavaApplication29 {
   public static void main(String[] args) {
      try {
         Document documentobj = new Document(PageSize.A4, 20, 20, 20, 20);
         PdfWriter.getInstance(documentobj, new FileOutputStream("output.pdf"));
         documentobj.open();
         Image imageobj = Image.getInstance("C:\Users\lenovo\Desktop\RDD\Logo Org.jpg");
         imageobj.scaleToFit(200f, 200f);
         imageobj.setRotationDegrees(90);
         documentobj.add(imageobj);
         documentobj.close();
         System.out.println("Task completed");
      } catch (Exception e) {
         System.out.println("Exception occurred");
      }
   }
}

Output

Dimensi paparan konsol dan pop timbul pelaksanaan dengan pengekodan menggunakan kaedah yang mungkin dalam program. Imej baharu disimpan selepas putaran.

Program Java untuk memutar imej

Kesimpulan

Dalam artikel ini, proses yang dibincangkan di atas membantu untuk memutar fail imej. Untuk putaran 90 darjah, program perlu menyediakan imej baharu dan semua parameter perlu diubah. Oleh kerana titik penambat masih berada di tengah-tengah imej, operasi adalah sama untuk putaran mengikut arah jam dan lawan jam.

Atas ialah kandungan terperinci Program Java untuk memutar imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Apakah Grafik AWT Java?Artikel seterusnya:Apakah Grafik AWT Java?