簡體   English   中英

Java ImageIO類繪圖圖像並另存為TIFF

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM