5

PhoneGap を使用して iOS アプリに取り組んでいます。一部の画像が読み込まれないという厄介な問題に遭遇しました。キャッシュの問題だと思って、画像を交換してみました。

私は最終的に、問題が私の画像の高さに関係していることを発見しました. 試行錯誤を繰り返した結果、7864px を超える画像は iPad シミュレーターまたは iPad 自体に読み込まれないことがわかりました。Safariでは問題なくロードされます。これらのサイズはわずか 45k であり、サイズが 700k の画像を別の場所で問題なく読み込んでいるため、これはファイル サイズの制限ではありません。

誰かがこれに遭遇しましたか?モバイル Safari 内の画像サイズに関する文書化された制限が見つかりません。制限がある場合は、それらを知っておくと便利です。

4

1 に答える 1

6

ネイティブアプリの場合、Appleは、 2048x2048 1024x1024を超える画像は避け、小さい画像に分割する必要があると述べています。ここでの問題は、ディスク上のファイルサイズではなく、メモリ内のサイズです。画像をデコードして「フラット」表現に変換する必要があります。

それでは、いくつかの計算をしてみましょう。8ビットRGBの5000x5000ピクセルの画像を想定します。これは、各ピクセルが3バイトを占めることを意味します。

5,000 * 5,000 * 3 = 75,000,000(約71.5 MiB)

そのため、一見小さい画像が非常に速くメモリをいっぱいにすることがわかります。iOSは、メモリが不足している場合、画像全体であるか、何もない場合でも、パーツを破棄できないようになりました。

唯一の解決策は、画像を小さな部分に分割することです。iOSは、メモリから表示されなくなった画像を削除できます(すべての部分が常に表示されるような巨大な画像には疑問があります)。

于 2011-07-17T18:37:56.513 に答える