11

MicrosoftのDeepZoomコンポーザーを介して作成された一連のタイル画像コレクションと、現在MultiScaleImageを介して表示するためにそれらを使用するSilverlightアプリケーションがあります-すべてうまく機能しています-iPadプログラミングの経験を積んで、いくつか持っていたいですいくつかのiPadアプリケーションのアイデアの。私のアイデアはすべて、これらのタイル画像セットを(iPadで)表示/操作できることに依存しています。

これを容易にするためにiMacを手に取ったところです。ただし、このためのObjective-C / Cocoa-touchライブラリは表示されないので、自分で作成する必要があると想定しています。(Seadragon Ajaxコンポーネントはかなり洗練されていますが、ここではサポートされていないコレクションを扱っています。また、経験を積むために、これをネイティブアプリケーションとしてロールしたいと思います。)

タイル画像セットを表示/操作するために私が見つけた唯一のオープンソースプロジェクトは、FlashコンポーネントであるOpenzoomでした。私はActionScriptにも精通していません(Python、Java、C#、およびcは私が実際に使用した唯一の言語です)が、コードを簡単に調べると、実際には問題はなく、おそらくヒントとして使用できます。タイルを入れ替える方法などについて。しかし、Objective-C / Cocoa-touchはかなり新しいので、正しい方向にいくつかのポインターをいただければ幸いです。

1)私が見逃している他のプロジェクトはありますか、それともOpenZoomが参考になる最善の策ですか?

2)UIKitフレームワークでこの表示を実行する必要がありますか、それともOpenGL表示として実行する必要がありますか?

3)私が尋ねるとは思わなかった他の提案/ポインター。

4

5 に答える 5

4

大きな画像をタイリングしてディープズームを可能にするいくつかのアプリに取り組んでいます。いくつかの例を見つけましたが、私にとって最も便利で最も便利なのは、Appleの「PhotoScroller」サンプルコードでした。

タイリングの処理はCATiledLayerに依存しています。その結果、非常に大きな画像でも非常にスムーズで応答性の高いインターフェイスが得られ、複雑すぎません。(少し複雑ですが、それほど悪くはありません)。

だからあなたの質問に直接答えるには:

  1. PhotoScrollerコード

  2. QuartzCoreフレームワーク(SDKの一部)

  3. 私がよく使うタイルに画像をスライスするための素晴らしい無料の小さなMacアプリがあります:「Tilen」
于 2011-03-31T13:29:16.043 に答える
1

WWDC 2010のソースサンプルでは、​​iOSの下で、ScrollViewSuiteにTilingというプロジェクトがあります。これはWWDC10セッション104に対応します。これはおそらくそこにある最高の画像タイリングの例です。

于 2011-04-06T21:06:51.780 に答える
0

CATiledLayerを見てください。ここで同様の質問に対する私の答えを参照してください:CoreGraphicsCGContextDrawImageを使用したCATiledLayerでの描画

于 2011-04-07T06:34:14.487 に答える
0

RouteMeライブラリがこれを行う方法、高解像度タイルの動的ロード、パンなどを確認できます。https://github.com/route-me/route-me

于 2011-03-31T13:32:52.033 に答える
0

UIScrollviewについて誰もあなたに話していないなんて信じられません; UIScrollViewコンポーネントは、まさにこの目的のために設計されています。(それを使用するGoogleマップを考えてみてください)。

クラスリファレンスをチェックしてください... UIScrollView

必要なデリゲートメソッドは次のとおりです。

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

これにより、ズームレベル、オフセットなどを確認してから、ズーム用のビューを提供できます。このようにして、タイルランドスケープを表すために使用されるグラフィックスとは関係なく、タイルランドスケープ内で「位置」を維持できます。

独自のUIScrollViewをロールしないでください。ロールする必要はありません。

于 2011-04-04T12:35:27.733 に答える