[英]Java ImageIO Class Drawing Image and Saving as TIFF
Windows 7(32位)上的Java 1.8_201以下是我的代碼。 由於TIFF不是受支持的格式,因此無法附加圖像。 我不明白為什么我創建的TIFF圖像會顛倒顏色。 JPEG圖像似乎還可以。 根據Windows Photo Viewer,圖像具有以下屬性:
back.tif
寬度= 1337像素
高度= 712像素
水平分辨率= 200 dpi
垂直分辨率= 200 dpi
位深度= 1
壓縮= CCITT T.6
與文件front.tif相似
both.tif
寬度= 1340像素
高度= 1425像素
水平分辨率= 1 dpi
垂直分辨率1 dpi
位深度= 1
壓縮=未壓縮
back2.jpg
寬度= 1337像素
高度= 712像素
水平分辨率= 200 dpi
垂直分辨率= 200 dpi
位深度= 8
(未顯示壓縮詳細信息)
both2.jpg
寬度= 1340像素
高度= 1425像素
水平分辨率= 96 dpi
垂直分辨率= 96 dpi
位深度= 8
(未顯示壓縮詳細信息)
我的代碼:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class TwoImage {
public static void main(String[] args) {
// File back = new File("C:\\temp\\back2.jpg");
File front = new File("C:\\temp\\front.tif"); // width = 1340 , height = 713
// File front = new File("C:\\temp\\front2.jpg");
File back = new File("C:\\temp\\back.tif"); // width = 1337 , height = 712
try {
BufferedImage bImg = ImageIO.read(back);
BufferedImage fImg = ImageIO.read(front);
BufferedImage img2 = new BufferedImage(1340,
1425,
// BufferedImage.TYPE_BYTE_GRAY);
BufferedImage.TYPE_BYTE_BINARY);
Graphics2D g2D = img2.createGraphics();
g2D.drawImage(fImg, 0, 0, null);
g2D.drawImage(bImg, 0, 713, null);
g2D.dispose();
// File output = new File("C:\\temp\\both2.jpg");
File output = new File("C:\\temp\\both.tif");
// ImageIO.write(img2, "JPEG", output);
ImageIO.write(img2, "TIFF", output);
}
catch (Exception x) {
x.printStackTrace();
}
}
}
我編寫了一個測試程序,該程序加載一個TIFF圖像並將其顯示為JLabel上的圖標,並以相反的顏色顯示。 因此,我認為JDK 1.8.0_201附帶的默認TIFF圖像閱讀器在這里不合適。 因此,我猜想可能需要通過類'javax.imageio.plugins.tiff.TIFFImageReadParam'更改默認設置。 但是后來我發現TwelveMonkeys及其默認的TIFF圖像閱讀器正確處理了我的TIFF圖像,這就是我解決問題的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.