2017-02-07 19 views
0

私はビットマップの圧縮メソッドを使用しません。私はちょうどSDカードに直接書きたいと思う。私の場合は圧縮を使いたくない。タイトルに基づいてビットマップをbitmap.compressメソッドなしのファイルに書き込む方法

+0

ほとんどの一般的な画像フォーマットは本質的に圧縮されています(PNG、JPEG、WebPなど)。あなたが使用しようとしているものは何ですか** – CommonsWare

+0

イメージをPNG自体に入れたいが、サイズや解像度を減らす方法は望ましくない。ファイルをオリジナルとして保存します。 –

+1

"メソッドがサイズや解像度を減らしたくない" - 'compress()'は決して解像度を変更しません。 "元のファイルを保存する" - あなたは "オリジナル"がどこから来たのかを示す[mcve]を提供していないので、 "オリジナルファイルを保存する"という意味を正確に定義していないので、あなたを助ける者。 – CommonsWare

答えて

1

:これは、ファイルへの直接URLを保存します。

FileOutputStream output = ctx.openFileOutput(localFileName, context.MODE_PRIVATE); 

      URLConnection openConnection = new URL(url).openConnection(); 
      openConnection.connect(); 
      InputStream inputStream = openConnection.getInputStream(); 
      byte[] buffer = new byte[1024]; 
      for (int n = inputStream.read(buffer); n >= 0; n = inputStream.read(buffer)) 
       output.write(buffer, 0, n); 
      output.flush(); 
      output.close(); 
      inputStream.close(); 

あなたはSDカード

に保存するために新しいのFileOutputStream(新しいファイル(「ファイルパス」))のためopenFileOutputを変更することができますしかしImageLoader APIに問題があるようです。

+0

イメージファイルのサイズにはインデックス1024で十分ですか? –

+0

buffはinputStream.readに使用されます。その数については多くの議論がありますが、通常1024または2048を使用しています。http://stackoverflow.com/questions/8748960/how-do-you-decide-what-byte-size-to-use-for-inputstream -read –

+0

はチャームのように機能します! –

関連する問題