3

膨大な数の UIImage をファイルに保存して読み取ろうとしています。私が考えているオプションは次のとおりです。

  1. 画像を NSData に変換し、それぞれを対応するファイル ("1.png"、"2.png" など) に保存し、後でそれらを読み取ります。
  2. 画像を NSData に変換して 1 つの大きなファイルに保存し、各画像の開始位置もファイルに保存します。その後、一度ファイルを開き、NSFileHandle の seekToFileOffset を使用してそれらを読み取ります。

オプション 2 を検討している理由は、これらの画像を使用してアニメーションを実装しようとしているためです。画像を一度に 1 つずつ開いても、高フレーム レートのアニメーションに十分な速さであるかどうかはわかりませんでした。また、私がまだ気付いていないより良い方法があるかもしれません。アドバイスをいただければ幸いです。ありがとうございました!

4

6 に答える 6

0

面白い。いくつかの解決策を調査す​​る必要があるように聞こえます...画像の数、サイズ、表示するフレームレートなどにすべて依存すると思います

最も単純な解決策から始めて、適切な解決策が見つかるまで試してください。

さらに別の解決策(最も単純ではない) を組み込む。オールインワンファイルの変形。[NSData dataWithContentsOfMappedFile:]ファイルの読み取りをバイパスし(バッファを介してコンテンツを渡す)、バイトへの直接のメモリアクセスを提供するこれを使用できます。

このメソッドはiOS5で廃止されdataWithContentsOfFile:、代替手段として推奨されていることに注意してください。NSDataReadingMappedAlways

メモリ マップ ファイルは楽しい機能を提供できます。qsort()http://www.memention.com/blog/2011/05/04/That-old-thing.htmlを使用してファイルソートを書いたらmmap()

于 2013-05-29T20:12:20.797 に答える
0

アニメ化を目指す理由については語られていません。暗闇での撮影ですが、アニメーションに Cocos 2D を使用することを検討しましたか? ここに素晴らしいチュートリアルがあります:

http://www.raywenderlich.com/32045/how-to-use-animations-and-sprite-sheets-in-cocos2d-2-x

于 2013-05-30T01:19:06.687 に答える
-1

別のオプションは次のとおりです。 1. データベース ファイルを作成し、すべての画像をそこにロードします。2. インストール時にデータベース ファイルをアセット フォルダからドキュメント フォルダにコピーします (phonegap/jquery を使用している場合、そうでない場合は他の方法があると思います)。3. データベースへのアクセスはファイルへのアクセスよりも高速であるため、必要に応じてイメージを使用できるようになりました。

于 2013-04-18T06:19:19.983 に答える