Я пытаюсь записать серое изображение в файл TIFF с помощью Sanselan.Очевидно, что хотелось бы сохранить данные в 8-битном файле с серой шкалой, но почему-то я всегда получаю 24-битный файл цвета.
Я искал форматы файлов в целом и ExifTagConstants.EXIF_TAG_PIXEL_FORMAT
в частности, но не смогчтобы найти что-нибудь полезное.
Я также рассмотрел цветовые профили, но, похоже, их нет для полутоновых изображений.Но тогда у них у всех есть дурацкие имена - я мог просто пропустить правильное.
Или мне нужно использовать другую библиотеку?
Здесь код, который я использую (без бизнес-логики и экспериментаstuff:
Test_Only_Sanselan:
try
{
final Map <String, Object> parameter = new HashMap <>();
parameter.put(org.apache.sanselan.SanselanConstants.PARAM_KEY_COMPRESSION,
org.apache.sanselan.formats.tiff.constants.TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED);
final java.io.OutputStream output = new java.io.FileOutputStream("Test-1.tiff");
org.apache.sanselan.Sanselan.writeImage(image, output,
org.apache.sanselan.ImageFormat.IMAGE_FORMAT_TIFF, parameter);
output.close();
}
catch (final IOException exception)
{
LdfImage.log.info("! Could not create tiff image.", exception);
}
catch (final org.apache.sanselan.ImageWriteException exception)
{
LdfImage.log.info("! Could not create tiff image.", exception);
}
Интересно, нужно ли мне добавлять специальный параметр, но я пока не нашел полезного параметра.
Ниже приведен тест средства записи изображений Java 7, которыйсоздает правильное изображение в оттенках серого, но в формате PNG, а не в формате TIFF:
Test_Only_Java_7:
try
{
final java.util.Iterator imageWriters = javax.imageio.ImageIO.getImageWritersByMIMEType ("image/png");
final javax.imageio.ImageWriter imageWriter = (javax.imageio.ImageWriter) imageWriters.next();
final java.io.File file = new java.io.File("Test-2.png");
final javax.imageio.stream.ImageOutputStream output = javax.imageio.ImageIO.createImageOutputStream(file);
imageWriter.setOutput(output);
imageWriter.write(image);
}
catch (final IOException exception)
{
LdfImage.log.info("! Could not create tiff image.", exception);
}
Существует ли встраивание TIFF для imageio?