2

プロジェクトで Apple の Large Image Downsizing サンプル コードを使用して、ズーム可能な大きな画像をロードしています。

サンプル プロジェクトは、ここからダウンロードできます: Apple Large Image Downsizing

UIScrollView ソースは、ここで直接表示できます: ImageScrollView.m

ユーザーが無限にズームインできるという事実を除けば、うまく機能します。Apple が UIScrollView のズーム機能を使用している間、実際のズームは、UIView を変換するのではなく、ソース イメージを再スケーリングすることによって実行されるようです。(ただし、それがどのように機能するかについての私の理解は少し不安定です!)

画像の最大解像度に制限される最大ズームを探しています。

4

1 に答える 1

1

私はそのプロジェクトに気づいていませんでしたが、あなたが本当に望んでいることをしていないようです. 非常に大きな画像ファイルを取得してサイズを縮小できます。

巨大な JPEG 画像 (1 つは NASA の 18,000 x 18,000) をダウンロードし、到着するたびに段階的にデコードできるgithub プロジェクトPhotoScrollerNetworkがあります。次に、CATiledLayers を使用して、ウィンドウに収まるほど小さい縮小で画像を表示しますが、完全な画像解像度にズームアウトできます。これは、あなたの目的により適しているかもしれません。

このプロジェクトは、Apple の PhotoScroller プロジェクトに基づいており、事前にタイル化された画像でのみ機能します。

編集: Large Image Downsizing プロジェクトをダウンロードしました。これは Apple のPhotoScrollerと多くの共通点があり、後のプロジェクトを調べてみると、おそらくズームを制限する方法を理解できるでしょう。私はそれがこれらの行に関係していると思います:

    self.maximumZoomScale = 5.0f;
    self.minimumZoomScale = 0.25f;

そうは言っても、私は葉の画像を取得して PhotoScrollerNetwork のバンドルに貼り付け、iPhone 4 で比較を行いました。Large Image Downsizing プロジェクトでは、画像をデコードするのに 1 分かかりました。レンダリング中に画像の増分ビューを見ることができます。 、しかし、それは(私が信じている)続行する前にディスク上のイメージ全体を必要とします。

PhotoScrollerNetwork は 32 秒で画像をデコードできましたが、これは約半分の時間です。ネットワークからダウンロードする場合、データを受信すると画像がデコードされるため、データの最後のチャンクから画像が表示されるまでの遅延はわずかです。

PhotoScrollerNetwork のオファー:

  • 同時画像ダウンロードとレンダリング

  • 詳細レベルが自動的に設定され、フル サイズおよびオール オン ワン スクリーンでの表示画像が最適化されます

  • 非常にスムーズなズームとパン (タイルが事前にレンダリングされているため)

  • ファイルはディスクに保存されません (ただし、ディスク キャッシュを使用します): これは、アプリがクラッシュした場合にクリーンアップが不要であることを意味します。

    以下のログメッセージ:

    2012-09-05 11:46:11.784 LargeImage[2242:3107] ダウンサイズを開始します。反復: 14、タイルの高さ: 754.000000、残りの高さ: 425 2012-09-05 11:46:11.788 LargeImage[2242:3107] 反復 1/14 2012-09-05 11:46:13.132 LargeImage[2242:3107] 反復2/14 2012-09-05 11:46:15.148 LargeImage[2242:3107] 反復 3/14 2012-09-05 11:46:17.526 LargeImage[2242:3107] 反復 4/14 2012-09-05 11: 46:20.627 LargeImage[2242:3107] 反復 5/14 2012-09-05 11:46:24.017 LargeImage[2242:3107] 反復 6/14 2012-09-05 11:46:27.696 LargeImage[2242:3107] 反復7/14 2012-09-05 11:46:31.823 LargeImage[2242:3107] 14 の 8 2012-09-05 11:46:36.638 LargeImage[2242:3107] 14 の 9 の反復 2012-09-05 11: 46:41.791 LargeImage[2242:3107] 反復 10/14 2012-09-05 11:46:47.309 LargeImage[2242:3107] 反復 11/14 2012-09-05 11:46:53。

    2012-09-05 11:57:24.465 PhotoScrollerNetworkTurbo[2262:1c03] 初期化: 合計: 270237696 使用: 163041280 無料: 107196416 [常駐 = 6574080 仮想 = 346882048] 2012-09-05 PhotoScrollerNetworkTurbo262:52:24.5 ] ORIENTATION=1 string=1 2012-09-05 11:57:24.535 PhotoScrollerNetworkTurbo[2262:1c03] ZLEVELS=5 2012-09-05 11:57:57.463 PhotoScrollerNetworkTurbo[2262:1c03] FINISH-I: 32974 ミリ秒 2012- 09-05 11:57:57.946 PhotoScrollerNetworkTurbo[2262:1c03] 終了: 合計: 260521984 使用: 219987968 無料: 40534016 [常駐 = 3469312 仮想 = 349683712]

于 2012-09-05T11:50:48.767 に答える