• 締切済み

JavaでBitmapを圧縮しないでファイル保存

javaで、android端末で実行する画像処理のアプリを作成しています。BitmapのデータをそのままBitmap形式でファイルに保存したいのですが、良い方法はありませんか。BitmapクラスをImageクラスまたはBufferedImageクラスに変換できれば、ImageIOを使って、ファイル書き込みや読み出しが簡単にできるのですが変換のやり方が分かりません。 Bitmapデータを圧縮して、Byte列に変換してからファイル書き込みを行う方法(bmp2dataなど)は、Webにいろいろ載っていますが、実行してみると時間がかかります。Bitmapを圧縮しないでそのままByte列に変換する方法があればよいのですが、探してみましたが見つかりません。どなたか良い方法をご存知でしたらお願いします。

みんなの回答

  • tyatsumi
  • ベストアンサー率58% (30/51)
回答No.2

AndroidではImageIOが使えないという噂を聞きました。

noname#208507
noname#208507
回答No.1

検索キーワードを変えてみてはどうでしょうか。拡張子 PPM / PGM / PBM の画像を Java で読み書きする方法を探してみては。 上記はとてもシンプルで、広く知られた非圧縮のビットマップ画像のファイル形式です。NetpbmやPNMとも呼ばれます。このあたりのキーワードで検索すると、Javaで非圧縮の画像保存を実現する方法が見つかると思います。

golden-life
質問者

お礼

有難うございます。 早速、探してみました。 http://discypus.jp/wiki/?Java%2F%B2%E8%C1%FC%BD%E8%CD%FD%2FPPM http://thiscouldbebetter.wordpress.com/2011/08/16/reading-and-writing-a-bmp-file-using-java/ http://lecture.ecc.u-tokyo.ac.jp/~ktanaka/programming05/primers/2-4.html などが、見つかりました。ただ何れもPPMやBMPの内部フォーマットを見て、プログラムで変換しなければならないようで、ちょっとハードルが高いので、どうしようか迷っています。 JAVAのImageIOでは、簡単にImageをファイルに書き込んだり、読んだりできます。ところがBitmapではそのようなメソッドが用意されていない(JPEGなどに圧縮してファイルすることはできますが、そのまま高速にと言うのはない)。そこで、BitmapとImageの変換をするメソッドがあれば良いのにと考えたのですが、本当に無いのでしょうか。

関連するQ&A