Получение черепичной коллекции изображений на iPad (Deep Zoom)

У меня есть набор коллекций коллекций, созданных с помощью Microsoft Deep Zoom, и приложение Silverlight, которое в настоящее время потребляет их для отображения через MultiScaleImage - все это работает очень хорошо - я просто хотел бы получить некоторый опыт программирования iPad и есть несколько идей для некоторых приложений iPad. Все мои идеи полагаются на то, что я могу отображать/манипулировать этими черепичными наборами изображений (на iPad).

Я просто взял iMac, чтобы облегчить это. Я не вижу никаких библиотек Objective-C/Cocoa -touch, но я предполагаю, что мне придется сворачивать самостоятельно. (Я видел компонент Ajax от Seadragon, который довольно гладкий, но я имею дело с коллекциями здесь, которые он не поддерживает. Я также хотел бы перевернуть это как родное приложение, чтобы получить опыт.)

Единственным проектом с открытым исходным кодом, который я нашел для отображения/обработки наборов черепичных изображений, был Openzoom - компонент Flash. Я тоже не знаком с ActionScript (Python, Java, С# и c - это единственные языки, которые я действительно использовал), но вкратце проверяя код, на котором у меня действительно не было никаких проблем, и, вероятно, можно использовать его для подсказок о том, как поменять местами входы и выходы и т.д. Но, поскольку я довольно новичок в Objective-C/Cocoa -touch, некоторые указатели в правильном направлении будут оценены.

1) Есть ли какие-либо другие проекты, которые у меня отсутствуют, или это OpenZoom, лучший вариант для некоторых ссылок?

2) Должен ли я пытаться сделать это отображение в каркасе UIKit, или я должен делать это как отображение OpenGL?

3) Любые другие предложения/указатели, о которых я не думал спрашивать.

Ответ 1

Я только что работал над несколькими приложениями, которые полагаются на черепицу больших изображений, чтобы обеспечить глубокое масштабирование. Я нашел несколько примеров, но лучшим и полезным для меня был образец кода Apple "PhotoScroller".

Он использует CATiledLayer для обработки черепицы. Результатом является чрезвычайно плавный и отзывчивый интерфейс даже с очень большими изображениями и не слишком сложный. (Немного сложный, но не очень плохой).

Итак, чтобы ответить на ваш вопрос напрямую:

  • Код PhotoScroller

  • QuartzCore Framework (входит в состав SDK)

  • Существует большое бесплатное приложение для Mac, которое позволяет нарезать изображения на плитки, которые я использую много: "Tilen"

Ответ 2

В исходных примерах WWDC 2010 под iOS есть проект в ScrollView Suite под названием Tiling. Это соответствует сеансу 104 WWDC10. Это, вероятно, лучший пример обработки изображений.

Ответ 3

Вы можете взглянуть на них так, как это делает библиотека RouteMe, динамическая загрузка плиток с более высоким разрешением, панорамирование и т.д. https://github.com/route-me/route-me

Ответ 4

Не могу поверить, что никто не сказал вам о UIScrollview; компонент UIScrollView предназначен именно для этой цели! (думаю, Google Maps, который его использует).

Проверьте ссылку на класс... UIScrollView

Необходимый вам метод-делегат...

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

Это позволяет проверить уровень масштабирования, смещение и т.д., а затем предоставить представление для масштабирования. Таким образом, вы можете поддерживать свою "позицию" внутри плиточного ландшафта независимо от графики, используемой для его представления.

Не сворачивайте свой собственный UIScrollView, не нужно!