ImageMagick обрезает большое изображение в плитки xyz

у меня есть большой jpg с разрешением x * 256 / x * 256. Я хочу разрезать это изображение на плитки 256x256 с соглашением об именах {zoom}-{x}-{y}.jpg. В прошлом я использовал конвертер ZoomifyExpress, который выполняет обрезку и масштабирование. Я также хочу 6 различных уровней масштабирования. Я начал до сих пор с этой командой:

convert example.jpg -crop 256x256 +gravity -set filename:tile ./tiles/%[fx:page.x/256]-%[fx:page.y/256] %[filename:tile].jpg

Это создает много плиток x-y.jpg. Я не знаю, как я могу добавить разные уровни масштабирования. Я относительно новичок в ImageMagick, и это похоже на основную вещь. Надеюсь, кто-нибудь может мне помочь. Заранее спасибо.


person kukudas    schedule 09.10.2014    source источник
comment
Пожалуйста, потратьте немного времени на проверку вашего вопроса на наличие основных ошибок, если вы ожидаете, что люди будут тратить свое время на ответы. Вы имеете в виду 250x250 или 256x256? Какие первые несколько имен фактически произведены? Каков размер входного изображения? Что такое {zoom} и уровень масштабирования, они не отображаются в вашей команде обмена мгновенными сообщениями? Спасибо.   -  person Mark Setchell    schedule 09.10.2014
comment
Ты прав. Это фактически решает мою первую проблему. Я не могу поверить, что я не признал неправильное решение сам. Я отредактировал вопрос. Спасибо. Уровень масштабирования не отображается, потому что я не знаю, как это сделать.   -  person kukudas    schedule 09.10.2014
comment
Что вы подразумеваете под zoom level - что это такое? Можете ли вы привести пример с входными и выходными изображениями, чтобы я мог понять, что вы пытаетесь сделать?   -  person Mark Setchell    schedule 09.10.2014


Ответы (1)


Я нашел решение:

Я просто изменяю размер изображения до нужного размера, а затем обрезаю его. Первое число в имени файла — это уровень масштабирования.

convert example.jpg -resize 256x256 -crop 256x256 -set filename:tile ./tiles/0-%[fx:page.x/256]-%[fx:page.y/256] %[filename:tile].jpg

convert example.jpg -resize 512x512 -crop 256x256 -set filename:tile ./tiles/1-%[fx:page.x/(256)]-%[fx:page.y/(256)] %[filename: плитка].jpg

.. и так далее, пока я не достигну самого высокого разрешения.

person kukudas    schedule 09.10.2014