разрезка на тайлы [сообщение #100133] |
чт, 01 июля 2010 09:43 |
|
Chartpilot писал(а) ср, 05 мая 2010 23:06 |
Пакет ImageMagick — это вообще чудо пакетной обработки.
Пакет типа portable, кроссплатформенный, устанавливать не надо.
Ну о-очень большая матчасть: http://www.imagemagick.org/www/perl-magick.html
d:\Utils\ImageMagick6\montage.exe d:\data\*.jpg -mode Concatenate -tile x%1 d:\data\itog.jpg
d:\data\*.jpg — путь к исходным файлам
-mode Concatenate -tile — опции утилиты
x%1 — количество строк (число вместо %1)
d:\data\itog.jpg — путь с итоговым файлом.
|
А существует ли аналог для разрезки на тайлы?
С заданием маски тайлов и уровня компрессии?
У Я-карт есть, но там не отрегулировать компрессию
|
|
|
|
|
Re: разрезка на тайлы [сообщение #100177 является ответом на сообщение #100149] |
чт, 01 июля 2010 23:47 |
|
Режется так:
Возьмём тот же uu.jpg (484х382 px)
convert uu.jpg -crop 200x100 unew_%d.jpg
В результате в текущем каталоге
unew_d-0.jpg (200x100)
unew_d-1.jpg (200x100)
unew_d-2.jpg (84x100)
unew_d-3.jpg (200x100)
unew_d-4.jpg (200x100)
unew_d-5.jpg (84x100)
unew_d-6.jpg (200x100)
unew_d-7.jpg (200x100)
unew_d-8.jpg (84x100)
unew_d-9.jpg (200x82)
unew_d-10.jpg (200x82)
unew_d-11.jpg (84x82)
Причём не надо чтобы было кратно — крайние просто будут урезаны.
|
|
|
Re: разрезка на тайлы [сообщение #100189 является ответом на сообщение #100177] |
пт, 02 июля 2010 10:42 |
|
Chartpilot писал(а) чт, 01 июля 2010 23:47 | Режется так:
Возьмём тот же uu.jpg (484х382 px)
convert uu.jpg -crop 200x100 unew_%d.jpg
В результате в текущем каталоге
unew_d-0.jpg (200x100)
unew_d-1.jpg (200x100)
unew_d-2.jpg (84x100)
Причём не надо чтобы было кратно — крайние просто будут урезаны.
|
А режет он горизонтальными проходами или вертикальными?
Для Я-карт надо вертикальными (хотя обычно встречал горизонтальные) и я не уверен, что правильно последнюю урезать. Надо попробовать....
...
Блин, не все так просто! Надо же создавать несколько слоев тайлов. Т.е. каждый раз картину сжимать вдвое и делать новый слой.
Алгоритм для непривязанных карт там такой: кол-во пикселов по длиной стороне делим на 256 и получаем кол-во тайлов по длиной стороне. Далее находим логарифм этого числа по основанию 2. Округляем к бОльшему целому значению. Полученное число будет номером слоя (верхний = 0). Для плавного зума надо сделать почти все промежуточные слои от 0 до нужного. Но 0, 1 и возможно второй делать не надо, в зависимости от размеров окна. Т.е. имеет смысл выбрать слой когда карта занимает его почти целиком, а не находится в виде точки в уголке.
В Я-картах:
О уровень - 1 тайл (виртуальное разрешение таково, что на 256 пикселей должно помешать 40000000 метров, т.е. весь земной шар в развертке)
1 уровень - 2 тайла
2 - 4
3 - 16
и т.д.
[Обновления: пт, 02 июля 2010 10:49] Известить модератора
|
|
|