Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Поддержка TIFF в рамках Java Image I/O API


Автор: hatsumeika 31.10.2005, 15:26
Java Image I/O API (javax.imageio.*) мне понравился с точки зрения архитектуры. Но есть одна проблема - нет поддержки TIFF в рамках API. Не нашел ни от Sun, ни от независимых разработчиков. Что поразительно, у Sun есть поддержка TIFF в рамках JAI (Java Advanced Imaging). Но мостика между JAI и Java Image I/O API я не нашел.

Теперь ответ на вопрос почему я хочу поддержку TIFF именно в рамках Java Image I/O API. Потому что там есть 2 интерфейса javax.imageio.ImageReader и javax.imageio.ImageWriter, которые позволяют работать с изображениями в разных форматах НЕ вникая, что это за формат. А это именно то, что мне нужно.

Может быть кто-то подскажет ответ на какой-то из следующих вопросов:
1) где взять класс реализующий javax.imageio.ImageReader для TIFF
2) можно ли использовать JAI для того, чтобы создать такой ридер самостоятельно малой кровью
3) возможно есть другой API, который не хуже Java Image I/O API, но поддерживает и TIFF тоже.

Заранее спасибо

Автор: KostenkoSergey 31.10.2005, 16:17
а ты уверен что TIFF поддерживается Javа-ой? smile
я слышал там у них были траблы с лицензией на какие то форматы изображений ?

Автор: hatsumeika 31.10.2005, 17:43
да, поддерживается Sun-ом в рамках Java Advanced Imaging.
например такой класс: com.sun.media.jai.codec.TIFFDecodeParam
и еще есть независимые разработчики. но они все строят свои API.

Автор: 7wind 2.9.2008, 20:16
запускаем мэин этого класса:

Код

import javax.imageio.ImageIO;

public class GetList {
    public static void main(String args[]) {
        String readerNames[] = ImageIO.getReaderFormatNames();
        printlist(readerNames, "Reader names:");
        String readerMimes[] = ImageIO.getReaderMIMETypes();
        printlist(readerMimes, "Reader MIME types:");
        String writerNames[] = ImageIO.getWriterFormatNames();
        printlist(writerNames, "Writer names:");
        String writerMimes[] = ImageIO.getWriterMIMETypes();
        printlist(writerMimes, "Writer MIME types:");
    }

    private static void printlist(String names[],
                                  String title) {
        System.out.println(title);
        for (int i = 0, n = names.length; i < n; i++) {
            System.out.println("\t" + names[i]);
        }
    }
}


видим: 

Код

Reader names:
    jpg
    BMP
    bmp
    JPG
    wbmp
    jpeg
    png
    JPEG
    PNG
    WBMP
    GIF
    gif
Reader MIME types:
    image/jpeg
    image/png
    image/x-png
    image/vnd.wap.wbmp
    image/bmp
    image/gif
Writer names:
    jpg
    BMP
    bmp
    JPG
    jpeg
    wbmp
    png
    JPEG
    PNG
    WBMP
    GIF
    gif
Writer MIME types:
    image/jpeg
    image/png
    image/x-png
    image/vnd.wap.wbmp
    image/bmp
    image/gif


подключаем отсюда либы:

http://java.sun.com/products/java-media/jai/downloads/download-iio.html

запускаем вышеуказанный код, видим:

Код

Reader names:
    BMP
    raw
    JPEG2000
    RAW
    jpeg
    tif
    WBMP
    jpeg2000
    GIF
    TIF
    TIFF
    jpg
    bmp
    PNM
    JPG
    pnm
    wbmp
    png
    JPEG
    PNG
    jpeg 2000
    JPEG 2000
    gif
    tiff
Reader MIME types:
    
    image/x-portable-anymap
    image/x-png
    image/tiff
    image/x-portable-pixmap
    image/vnd.wap.wbmp
    image/jpeg2000
    image/x-portable-bitmap
    image/png
    image/jpeg
    image/gif
    image/bmp
    image/x-portable-graymap
Writer names:
    BMP
    raw
    JPEG2000
    RAW
    jpeg
    tif
    WBMP
    jpeg2000
    GIF
    TIF
    TIFF
    jpg
    bmp
    PNM
    JPG
    pnm
    wbmp
    png
    JPEG
    PNG
    jpeg 2000
    gif
    JPEG 2000
    tiff
Writer MIME types:
    
    image/x-portable-anymap
    image/tiff
    image/x-png
    image/x-portable-pixmap
    image/vnd.wap.wbmp
    image/jpeg2000
    image/x-portable-bitmap
    image/png
    image/jpeg
    image/gif
    image/bmp
    image/x-portable-graymap


tiff (& raw(!)) присутствуют

---
сори что поднял старую тему. сам столкнулся с данной проблемой

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)