一個影像檔案可以順時針或逆時針旋轉。要旋轉圖像,需要下載一個隨機的圖像檔案並將其保存在系統的任何資料夾中。此外,需要一個.pdf文件,在打開下載的圖像文件後,可以在該特定的.pdf文件中旋轉一些角度。對於90度的旋轉,新影像的錨點可以幫助我們使用Java中的平移變換執行旋轉操作。錨點是任何特定圖像的中心。
The "AffineTransformOp" class is the simplest way to rotate an image file by using Java. A user can load the image data as Buffered Image and apply the rotate operation using anchorpoint to produce the exuffered is always recommended that to use JPEG files for these operation with JDeli(Filetype with wide range).
透過使用Java程式旋轉影像,程式設計師可以使用一些內建的方法,如BufferedImage類別和Color c。
使用這個過程,我們需要將一張圖像作為BufferedImage載入到Java中,然後使用相同的函數旋轉圖像,並將資料保存到新檔案中。
步驟 1
Step 2
Step 3
#第四步
Step 5
Syntax
Code declaration: public static Image rotate(Image image, double angle)
#Image
角度
#返回
Step 1
BufferedImage image = ImageIO.read(new File("C:\path\to\image name.jpg"));
Step 2
final double rads = Math.toRadians(90); final Rotate rotate = new Rotate(90); BufferedImage rotatedImage = rotate.apply(image);
Step 3 −
Save the image fileUse Java ImageIO ImageIO.write(rotatedImage,"JPG",newFile("C:\path\to\rotatedImagename.jpg"));
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; } }
Rotation of an Image Using BufferedImage Function
>
- 此函數可協助使用者在操作時開啟檔案。
Example
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
#透過在程式中使用可能的方法進行編碼,控制台顯示尺寸並執行彈出視窗。旋轉後儲存了一張新的圖像。 ###Conclusion### ###在本文中,上述討論的過程有助於旋轉圖像檔案。對於90度的旋轉,程式需要設定新的圖像,所有參數都需要被改變。由於錨點仍然位於影像的中心,且順時針和逆時針旋轉的操作是相同的。 ###以上是Java程式旋轉影像的詳細內容。更多資訊請關注PHP中文網其他相關文章!