Есть ли ограничение по времени работы?
Я запускаю командный файл DOS ниже. Моя ОС - Windows 7 с оперативной памятью 3 ГБ. В проводнике Windows я дважды щелкаю командный файл, и он отлично работает с изображениями стандартного размера и объединяет изображения в увеличенное изображение. Когда я делаю все то же самое, за исключением более крупных файлов изображений.jpg размером 1 МБ, код выполняется, но выдает файл нулевого байта. Может быть, время пакетного файла истекло? Как вы думаете, это ограничение для DOS или ImageMagick?
SETLOCAL EnableDelayedExpansion
SET MONTAGE="C:\Program Files\ImageMagick\Montage"
...
%MONTAGE% *.jpg -geometry +0+0 -tile 4x1 rows56-59-cols-32261-32400combined.jpg
1 ответ
Сам ImageMagick может поддерживать изображения exa-pixel в 64-битной ОС, см. Спецификацию здесь. К сожалению, JPEG не может поддерживать изображения размером более 64 000 пикселей с обеих сторон.
Одним из решений может быть использование другого формата outout, который поддерживает большие изображения, и ImageMagick просто тихо конвертирует в этот формат для вас. Например, PNG
Формат использует 4 байта для ширины и высоты, поэтому он должен поддерживать до 4 000 000 000 пикселей с каждой стороны. Так вы бы сделали
montage *.jpg ... output.png
Замечания:
PNG
изображение может сжиматься лучше или хуже соответствующего JPEG
файл в зависимости от того, является ли это сгенерированный компьютером тип изображения (хорошо для PNG
) или обычный тип фотографии, снятый камерой (подходит для JPEG
). Но если вы хотите большие изображения, вы можете застрять PNG
тем не мение. Также есть Large TIFF
формат, который вы могли бы исследовать.