-
brother © (01.07.10 11:14) [0]Есть карта 19800x13600 4bit (насколько мне обещают это еще не предел), стоит задача:
Быстрая отрисовка, масштабирование итд(
Погуглил, надумал варианты:
1. Резать на куски и подгружать
2. ScanLine
3. FastLib
С какой стороны лучше начать работу? -
brother © (01.07.10 11:15) [1]Стоит, ли заморочится на векторной реализации?
-
brother © (01.07.10 11:29) [2]выяснил, что bmp получается конвертацией из rsw файла...
-
> Стоит, ли заморочится на векторной реализации?
стоит
> Погуглил, надумал варианты:
> 1. Резать на куски и подгружать
> 2. ScanLine
> 3. FastLib
> С какой стороны лучше начать работу?
Резать конечно -
А RSW - это почти TIFF
-
> 1. Резать на куски и подгружать
Именно так работает большинство ГИС-сервисов с растром - используют заранее нарезанные тайлы 256*256. Тут тебе и гугл ( DGlobe ) и yandex и пр.
А также "сборщик" и визуализатор таких сервисов - SAS-planet -
brother © (02.07.10 05:07) [6]а как быть с масштабированием?
stetchblit (или как там его?)) даже для такого разрешения уже тормозит, как оптимизировать? -
> brother © (02.07.10 05:07) [6]
>
> а как быть с масштабированием?
Библиотеки ресайзинга на "лету" давно известны.
Тот же FastLib или G32. -
QAZ (02.07.10 12:04) [8]
> а как быть с масштабированием?
> stetchblit (или как там его?)) даже для такого разрешения
> уже тормозит, как оптимизировать?
в техже гуглах нет ресайза
там фиксированое число шагов зума и для каждого шага свой слой матрици загружаемых кусков -
Sapersky (02.07.10 17:00) [9]Всё уже обсуждалось:
http://pda.delphimaster.net/?id=1231067653&n=7
Дополнения:
1) Несжатый bmp можно не резать, но подгружать фрагментами. Благо спозиционироваться на нужное место несложно - на диске он точно в том же виде, как и в памяти.
2) Если порезать, то можно использовать RLE-сжатие фрагментов (фотошоп умеет, например). Но это сжатие даст более-менее заметный эффект только если карты - сканы бумажных с большим кол-вом одноцветных областей.
3) Возможно, придётся повозиться со стыками фрагментов - при масштабировании со сглаживанием они могут быть заметны.
4) Если нет жёстких ограничений по сист. требованиям - то размер 19800x13600 можно грузить и целиком. С учётом конверсии при загрузке в 8 бит (так удобнее) + уменьшенные копии -> 340 мб. Вроде бы вполне приемлемо. Хотя "на вырост" лучше, конечно, уметь грузить по частям.
5) Ещё к той ветке: пофрагментная загрузка jpeg через IJL в общем случае не даёт ускорения пропорционально объёму данных, например, загрузка 1/4 картинки из середины быстрее полной загрузки в 2.6 раза (а не в 4). Пропорциональное получается только при загрузке гор. полосками на всю ширину картинки. -
> Именно так работает большинство ГИС-сервисов с растром -
> используют заранее нарезанные тайлы 256*256. Тут тебе и
> гугл ( DGlobe ) и yandex и пр.
Да. Но карты изначально у них векторные. Кусочки создаются из этого вектора и потом кешируются хитрым образом вероятно. -
> Да. Но карты изначально у них векторные
Изначально - да, естественно векторные.
Мне казалось, что их внутренний софт генерит тайлы под гамму зумов и размещает на сервере, хотя может и ошибался. -
brother © (05.07.10 07:04) [12]Спасибо, будем копать)
-
TheEd (07.04.11 00:46) [13]Что-то подобное делал (карта правда существенно меньше но и работать с ней предполагалось чуть ли не на селероне первых лет выпуска :).
Проект до ума не доведён но в целом работает. Если нужен, пиши на мыло (ed.serdyuk@mail.ru) - скину! -
brother © (07.04.11 05:35) [14]> Если нужен, пиши на мыло (ed.serdyuk@mail.ru) - скину!
Спасибо, но не надо уже)