Получение мозаичной коллекции изображений на iPad (Deep Zoom) - PullRequest
11 голосов
/ 15 мая 2010

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

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

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

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

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

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

Ответы [ 5 ]

4 голосов
/ 31 марта 2011

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

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

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

  1. Код PhotoScroller

  2. QuartzCore Framework (который является частью SDK)

  3. Существует отличное бесплатное приложение для Mac для нарезки изображений на плитки, которое я часто использую: "Tilen"
1 голос
/ 07 апреля 2011

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

0 голосов
/ 07 апреля 2011

Посмотрите на CATiled Layer. Смотрите мой ответ на похожий вопрос здесь: Рисование в CATiledLayer с CoreGraphics CGContextDrawImage

0 голосов
/ 04 апреля 2011

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

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

Требуемый метод делегата следующий ...

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

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

Не катите свой собственный UIScrollView, нет необходимости!

0 голосов
/ 31 марта 2011

Вы можете взглянуть на то, как библиотека RouteMe делает это, на динамическую загрузку листов с высоким разрешением, панорамирование и т. Д.

...