Java ImageIO Класс рисования изображения и сохранение в формате TIFF - PullRequest
0 голосов
/ 23 января 2019

Java 1.8_201 в Windows 7 (32-разрядная версия) Ниже приведен мой код.Я не могу прикрепить изображение, так как формат 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 точек на дюйм

вертикальное разрешение = 96 точек на дюйм

битовая глубина = 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();
        }
    }
}

1 Ответ

0 голосов
/ 26 января 2019

Я написал тестовую программу, которая загружает одно из изображений TIFF и отображает его в виде значка на JLabel, который отображается в перевернутых цветах.Поэтому я предположил, что программа чтения изображений TIFF по умолчанию, которая поставляется с JDK 1.8.0_201, здесь не подходит.Поэтому я догадался, что мне, вероятно, нужно изменить настройки по умолчанию, возможно, через класс 'javax.imageio.plugins.tiff.TIFFImageReadParam'.Но затем я обнаружил TwelveMonkeys , и его устройство чтения изображений TIFF по умолчанию правильно обрабатывало мои изображения TIFF, и именно так я решил свою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...