検索

ホームページ  >  に質問  >  本文

Android压缩图片,程序崩溃

高洛峰高洛峰2770日前395

全員に返信(3)返信します

  • ringa_lee

    ringa_lee2017-04-17 16:58:44

    image.compress() メソッドはビットマップのサイズをまったく削減せず、画像圧縮を実現できません。したがって、baos と isBm は両方とも少量のメモリ領域を占有します。圧縮には inSampleSize を直接使用することをお勧めします

    返事
    0
  • PHPz

    PHPz2017-04-17 16:58:44

    書き方によっては、2000*1400 の写真のインサンプルサイズが 1 に設定され、デコードに必要なメモリが非常に大きくなります。
    鮮明さに対する特別な要件がない場合、画像を変換する必要があります。幅と高さを主流の画面サイズに設定し、ターゲットサイズを高さの半分に設定すると、鮮明に表示できます
    さらに、使用可能なメモリをリアルタイムで動的に監視して、動的に調整することもできます。インサンプルサイズ

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 16:58:44

    どちらのメソッドも Bitmap パラメータを受け取るため、呼び出し時に画像をメモリに読み込む必要があります。それは間違いなくメモリサージを引き起こします。
    画像を圧縮したい場合は、画像の保存場所を受け入れて、読み取り時に圧縮するのが最善です。ここでは、Options クラスを使用して設定し、保存します。
    画像の圧縮に関しては、元の画像をメモリにロードしないようにしてください。元の画像のインスタンスが作成されている場合、メモリが爆発しやすくなります。

    返事
    0
  • キャンセル返事