12

ユーザーがサイズを制限せずに写真を選択して編集できるようにしたい。

大きな写真のサムネイルを画面と同じサイズで編集用に作成し、編集が終了したら大きな写真を使用して、サムネイルに対して行ったのと同じ編集を行うという考えです。

UIGraphicsBeginImageContextサムネイル画像の作成に使用すると、メモリの問題が発生します。

ハードウェアの制限により、大きな画像全体を直接編集するのは難しいことを知っているので、大きな画像をメモリの問題なしで 2048*2048 未満にダウンサンプリングする方法があるかどうか知りたいですか?

Androidプラットフォームで写真をダウンサンプリングできるオプションをBitmapFactory持つクラスがあることがわかりました。inSampleSizeiOSでこれを行うにはどうすればよいですか?

4

3 に答える 3

10

実際にはイメージをメモリにロードせずにイメージのロードを処理し、必要なUIImage結果のイメージのサイズでビットマップ コンテキストを作成する必要があります (したがって、これが使用されるメモリの量になります)。次に、 を使用して、元の画像 (画像データの一部がメモリに読み込まれる場所) からタイルを描画する操作を何度も繰り返す必要がありCGImageCreateWithImageInRectますCGContextDrawImage

Apple のこのサンプル コードを参照してください。

于 2013-11-16T10:33:24.270 に答える
0

Trevor Harmon によるこの作品をご覧ください。アプリのパフォーマンスが向上しました。あなたにも役立つと思います。

https://github.com/coryalder/UIImage_Resize

于 2013-11-15T22:21:54.640 に答える