我正在嘗試在 Java 中合并兩個影像。兩張照片必須水平放置(第一張在第二張的左側)。我認為我在 ImageIO 類的 write 方法中存在問題。
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.*;
public class Merge {
public static void main(String[] args) throws IOException {
String p = "../../Desktop/temp/";
BufferedImage left = ImageIO.read(new File(p "006.jpg"));
BufferedImage right = ImageIO.read(new File(p "007.jpg"));
BufferedImage imgClone = new BufferedImage(left.getWidth() right.getWidth(), left.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D cloneG = imgClone.createGraphics();
cloneG.drawImage(right, 0, 0, null);
cloneG.drawImage(left, left.getWidth(), 0, null);
System.out.println(ImageIO.write(imgClone, "jpg", new File(p "001.jpg"))); //always false
cloneG.dispose();
}
}
ImageIO.write(imgClone, "jpg", new File(p "001.jpg"))總是回傳 false,我認為這里有問題,但我不知道是什么。如果我進入除錯,我可以看到合并的照片,但它不會保存在檔案夾中。
uj5u.com熱心網友回復:
我認為這是因為 JPEG 不支持透明度,而您使用 ARGB 作為影像緩沖區型別。洗掉“A”對我有用。
class Merge {
public static void main(String[] args) throws IOException {
BufferedImage imgClone = new BufferedImage( 50, 50, BufferedImage.TYPE_INT_RGB);
// returns "true"
System.out.println(ImageIO.write(imgClone, "jpg", File.createTempFile( "Test-", "jpg")));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/523542.html
上一篇:閃亮的應用程式無法下載格子圖
下一篇:檢測裁剪的影像在掩碼內
