LINUX.ORG.RU

Как «нашинковать» картинку с помощью ImageMagick


0

0

Дано:
Картинка размером 26980x30000 пикселей. Размер: ~70 Mb
Задача:
Разрезать картинку на фрагменты 190x100
Проблема:
Если делать в цикле примерно так:
convert image.png -crop 190x100+7000+28000 small.png - получается ооочень по долгу на каждый шаг (AMD3000+ 512Mb), т. к. он читает каждый раз в память всю картинку и разворачивает в свой формат.
Вопрос: есть ли какая-нибудь опция у IM чтобы он сам создал массив из маленьких картинок за один "цикл" запуска так сказать?


Ответ на: комментарий от Selecter

Спасибо
Но возникла другая проблема.
Как я подсчитал, должно быть создано 42600 файлов.
Но после создания примерно 4500 файлов скорость их генерации снизилась до неприличия. Один файл секунд эдак в 20.
С чем это может быть связано?
Можно как-нибудь ускорить процесс?
Файловая система: ext3
места на диске вроде хватить должно. На нехватку памяти не похоже, т. к. свопить на диск стал почти сразу после запуска :)

ksicom
() автор топика
Ответ на: комментарий от ksicom

Разбей тогда поэтапно. Большой файл разбей на подфайлы. Потом подфайлы разбей на то, что тебе надо получить. Просто bash скрипт - and you're all set!

Selecter ★★★★
()
Ответ на: комментарий от ksicom

А может у тебя ядро 2.6? У него проблемы с большой нагрузкой на жёсткий диск на случайных компьютерах. Например, попробуй большой файл (мегов 700) перекинуть на другой раздел. Будет ли система очень загружена из-за этого?

Selecter ★★★★
()
Ответ на: комментарий от Selecter

Сделаю наверно как Selecter сказал...
Жаль только считать придётся тщательно, т. к. куски должны быть обязательно одинаковыми :)

Я посмотрел, IM всё забил под завязку: и память и своп, похоже поэтому так и тормозит.

Ядро у меня 2.4.18-3 (RH7.3) С большими файлами нормально вроде работает. DVD образы туда обратно вроде нормально гонял.

ksicom
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.