tiffcp.exe объединяет файл результатов с файлом результатов в цикле - PullRequest
3 голосов
/ 22 сентября 2010

Я создаю веб-приложение, которое берет несколько файлов изображений TIFF и объединяет их в один файл изображений TIFF, используя GNUWin32 tiffcp.exe из командной строки.

То, как я это делал, состояло в том, чтобы пройтись по списку файлов и построить строку имен файлов, чтобы объединить их в одну переменную.

strfileList = "c: папка \ папка \ папка \ aased98-def-wsdeff-434fsdsd-dvv.tif c: папка \ папка \ папка \ aased98-def-wsdeff-434fsdsd-axs.tif c: папка \ папка \ папка \ aased98-DEF-wsdeff-434fsdsd-dxzs.tif "

Тогда я бы просто написал в командную строку:

tiffcp.exe strFileList results.tif

Имена файлов являются направляющими, поэтому пути довольно длинные, и я не могу их сократить. Так что, если у меня есть куча этих документов (более 20 файлов или около того), длина строковой переменной превышает ограничения для командной строки Windows, и объединение не выполняется.

Так как этот процесс просто объединяет файлы, моей следующей мыслью было вместо записи имен файлов в строку, просто выполняйте слияние по одному файлу за раз. Поэтому в первый раз цикл запускает следующий тип кода:

tiffcp.exe file1.tif results.tif

В результате получается идеальный 476 тыс. Файлов в формате TIF. Но следующая итерация цикла должна объединить второй файл плюс содержимое первого tif-файла «результатов». Итак, я делаю это:

tiffcp.exe results.tif file2.tiff results.tif

Результаты каждый раз представляют собой пустой файл формата 1K?

Все примеры, которые я могу найти для tiffcp.exe, говорят, что file1.tif file2.tif results.tif, ни один из них не использует файл результатов для обратной записи?

Есть предложения, как это сделать?

Ответы [ 3 ]

2 голосов
/ 19 декабря 2011

Попробуйте -a перейти на tiffcp.exe

Я делаю что-то подобное в Python, и внутри цикла обработки файлов я выдаю команду: tiffcpp.exe -a temp.tif output.tif

отлично работает.

1 голос
/ 01 октября 2010

Для проекта ASP.NET вы можете попробовать LibTiff.Net (бесплатная, лицензия с открытым исходным кодом, лицензия BSD).Этот порт библиотеки libtiff содержит утилиту tiffcp с исходным кодом.Вы можете попытаться использовать его в своем коде.

Отказ от ответственности: я один из сопровождающих библиотеки.

0 голосов
/ 22 сентября 2010

Я считаю, что ваша проблема вызвана использованием результатов. В качестве входных данных в качестве выходных данных.Если вы увеличиваете имя файла (т.е. results1.tif до results2.tif и т. Д.), Я считаю, что оно должно работать.

Это довольно неэффективный подход (tiff1 копируется 9 раз, если у вас 10 файлов).Поскольку вы ссылаетесь на libtiff, вы можете взглянуть на источник libtiff cp и проверить, стоит ли его вставлять.

...