Пример ImageMagick для преобразования нескольких файлов JPEG в многостраничный TIFF в JAVA

Мое требование состоит в том, чтобы преобразовать несколько файлов JPEG в многостраничный файл Tiff. Сначала я просмотрел этот сообщение и смог создавайте файлы tiff в java, используя библиотеки jai_imageio, но, к сожалению, эти библиотеки не имеют открытого исходного кода. Позже я услышал об ImageMagick, который мог дать мне именно то, что я хочу. Я установил ImageMagick на свой компьютер и написал небольшую служебную программу, которая принимает на вход несколько изображений в формате JPEG и выдает файл TIFF на выходе.

Код:

try {
    Process p = Runtime
        .getRuntime()
        .exec("C:/Program Files/ImageMagick-6.8.8-Q16/convert E:/1.jpg E:/2.jpg E:/3.jpg -compress JPEG " 
    +"E:/mul.tiff");
    p.waitFor();

    } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
}

Утилита работает очень хорошо, но проблема с вышеуказанной программой заключается в том, что я не могу ее отлаживать, и приведенный выше код не выдает никаких ошибок, даже если я укажу неправильный путь для входных файлов.

Я знаю о Jmagick, который предоставляет интерфейс Java для ImageMagick. Мне было бы полезно, если бы кто-нибудь предоставил мне пример программы Jmagick на java, которая может создавать многостраничный tiff с помощью нескольких jpeg в качестве входных данных.

Спасибо.


person chaitanya89    schedule 17.02.2014    source источник


Ответы (1)


После долгих поисков я нашел im4java, который помог мне преобразовать несколько файлов JPEG в один TIFF. Это оболочка Java для ImageMagick. А для установки и примеров посетите это. Загрузите необходимые файлы jar здесь и поместите их в путь к классам.

Вот пример кода, который я использую.

     // create the operation, add images and operators/options
        ConvertCmd cmd = new ConvertCmd();
        IMOperation op = new IMOperation();
        op.addImage("E:/jpeg/001.jpg");
        op.addImage("E:/jpeg/003.jpg");
        op.addImage("E:/jpeg/006.jpg");

        op.compress("JPEG");
        op.format("TIFF");// set the format.
        op.addImage("E:/im4j-compressed.tiff");

        // execute the operation
        cmd.run(op);
person chaitanya89    schedule 18.02.2014