ОГРОМНОЕ изображение для показа на iPhone - PullRequest
4 голосов
/ 17 января 2012

Хорошо, вот моя проблема.У меня ОГРОМНЫЙ файл jpg, 18000 x 18000 пикселей, размером 41 МБ.Если вам действительно нужно знать, это карта части страны с услугами.

Мой проект действительно прост.Мне просто нужно иметь возможность увеличивать и отображать это изображение размера дедушки.Весь путь от внешнего вида до 100% на iPhone.Я не слишком уверен, можно ли это сделать или сколько времени это займет.Был бы признателен за любые идеи.

Я пытался использовать imageView, но я читал, что он действительно не должен превышать 1024 x 1024. Это намного ниже, чем у меня.Если у вас есть идея, как это сделать, пожалуйста, поделитесь!

Ответы [ 3 ]

16 голосов
/ 17 января 2012

Вы должны разделить изображение на тайлы с различными увеличениями. Рассчитайте и создайте их в автономном режиме и отправляйте как отдельные файлы в комплекте приложений. Учитывая масштаб вашего дисплея, выберите ближайший размер. Затем вы выбираете, какие плитки нужны для покрытия экрана, и составляете их сетку. По мере увеличения пользователя выберите соответствующий размер плитки.

Преимущество этого заключается в том, что вам никогда не нужно загружать ОГРОМНЫЕ файлы в память, только столько, сколько необходимо.

Вот как это делает Google maps.

Не могу дать вам код, извините!

2 голосов
/ 17 января 2012

Вы должны следовать подходу, аналогичному тому, что делают Карты Google и другие картографические сайты.Вам нужно нарезать всю карту по разделам, чтобы пользователям не приходилось загружать всю карту, если это не всегда необходимо (плюс сокращает время загрузки)

Есть пара решений, которые могут работать длявам нравится OpenLayers или даже создание пользовательской карты Google с вашими изображениями, как видно здесь и здесь

1 голос
/ 17 января 2012

Вот пример от Apple для обработки больших изображений, который называется PhotoScroller .Изображения уже выложены плиткой.Если вам нужен пример мозаичного изображения в Какао, посмотрите cimgf.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...