AndroidSDKを使ってソフトの開発をしています。Bitmap形式の画像をそのまま圧縮しないでファイルに保存しようとしているのですが、その方法が分かりません。
今やろうとしていることは、Bitmap画像をそのままバイナリデータに変換して、バイナリデータとして保存しようとしているのですが、バイナリデータに変換する方法が分かりません。どなたか、知っている方がいましたら、教えてください。
Webを検索すると、JPEGなどに変換してからファイル書き込みをする方法が見つかりますが、変換なしの方法は見当たりません。ぜひ教えて頂ければ幸いです。
No.2ベストアンサー
- 回答日時:
失礼しました、java環境ですとBitmap.compressがあります。
http://isann.blog2.fc2.com/blog-entry-239.html
特に言及しなかったのですが、Bitmapクラスで扱う画像データは生の画像データで、ファイル形式のBMPとは異なります。
上のページは、ファイルフォーマットを指定してOutputStreamに「流し込む」操作です。
残念ながらBitmap.CompressFormatに定数指定されているのはJPEGとPNGしかありません。
JPEGだと非可逆圧縮のため画質が少々劣化するので、画質優先ならPNGを選択しましょう。
もう一つの注意点は、アプリケーションが読み書きできるディレクトリが限られると言うことです。
一つ目は/data/data/<パッケージ名>/files/で、各パッケージの「データ」として扱われます。この領域は(root化後に書き込み可能でマウントしない限り)他のパッケージからはアクセスできないようになっています。
二つ目は、/sdcard下または/mnt/sdcard下です。ここにはあらゆるアプリケーションがアクセスできます。この2ディレクトリは連動しているため、通常区別する必要はありません。
三つ目は外部ストレージですが、これは端末メーカーによってパスが異なりますのできちんとこのページを参考に指定してください。
http://y-anz-m.blogspot.jp/2010/08/android_31.html
また、SHARP端末等外部ストレージの内容が/sdcard下に混合して扱われてしまう場合があります。
また直ぐに、ご回答を頂き有難うございます。
Bitmapをそのまま保存する方法が無ければ、Bitmap.compressを使ってPNG形式で保存するのが良さそうですね。
それにしても、Bitmapのような構造体(Javaではクラスですか)のデータを、そのままフィル保存する方法があると便利なんですが。どうしてそのような機能が無いのか不思議に思います。
No.1
- 回答日時:
何か勘違いをされているようですが、JPEGもBitmapも元々バイナリデータです。
従って「バイナリに変換」ではなく「バイナリ(正確にはバイトデータ)の抽出」というのが正しいです。
ただし、単純なファイルの入出力であれば、BitmapクラスのコンストラクタやSaveメソッドで実現可能です。
Saveメソッドでは保存するファイル形式も指定できますが、端末によってGDI+エンコーダの有無が異なってきますので、殆どの端末で扱うことのできるJPEGでの保存がサンプルコードとして取り上げられることが多いようです。
参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/020 …
この回答への補足
早速のご回答有難うございます。
参考に示していただいたURLのWEBに関しては、質問を投稿する前に試してみました。このWEBに載っている方法は、.NETのC#版のやり方を示したものです。.NETC#にはSaveという便利なメソッドが用意されています。ところが、AndroidSDKには残念ながら、Saveがありません。
Bitmapデータをそのままファイリングして、後でそのファイルを同じプログラムで読み込むことをしたい。単にこれだけなのですが、Androidのファイルでは簡単にできないのでしょうか。そこで止む無く、バイナリ変換ではなく抽出(ご指摘有難うございます)をして、バイナリファイルに書き込むことができないかと考えたわけです。
何か良い方法があれば、また教えていただければありがたいのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELマクロでandroidタブレットから取りんだJPEGファイルをうまくセルに貼り付けられない 2 2022/07/31 15:03
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- 一眼レフカメラ 「Imaging Edge」を手動起動せず、ARWファイルを最高画質JPEGへ変換する方法は? 2 2022/08/05 11:38
- フリーソフト フリーソフト[フリーオンライン動画兼音声変換ソフト]縦長になってしまう 2 2022/07/11 08:11
- その他(ソフトウェア) コマンドプロンプトについて教えてください。 状況: 画像編集ソフト上でネットから保存した画像を使うの 3 2022/05/26 11:14
- その他(パソコン・周辺機器) Windows10パソコンで再生している音をWAVファイルとして録音、保存する方法は? 4 2023/06/15 18:34
- Photoshop(フォトショップ) Photoshopの画像が重すぎるので軽くしたいです 7 2022/05/13 20:13
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(パソコン・周辺機器) 解像度が低いモニターの動画を高いモニターで再生した際の画質劣化の対応策を教えてください 9 2023/08/22 15:14
- 写真 写真のRAWデータについて WindowsのパソコンでRAWデータをJPEGなどに一括でたくさんの画 1 2023/07/18 02:07
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cdaファイルをアンドロイドにコ...
-
Aloha Browser でダウンロード...
-
Android端末でBitmap画像そのま...
-
ローカルファイルのhtmlを作っ...
-
写真の日付情報がプリントされない
-
一部mp3ファイルがAndroidスマ...
-
AngelBrowserのブックマークの移行
-
スマホのメディアプレーヤー
-
アンドロイドのスマホのSDカー...
-
アンドロイドSDカードへの動画...
-
Windows10のアプリと機能の使用...
-
ブルーレイディスク内にある動...
-
iPhoneでWordを使って保存した...
-
Cドライブの容量が急激に増加
-
USBメモリ。信頼できるUSBメモ...
-
SSDについて教えてください。
-
偽装容量SDカードを元の正しい...
-
Ubuntuに必要なSSDの容量について
-
d払いのアプリ 起動しようとす...
-
このドイツ製ポータブルSSDとい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Aloha Browser でダウンロード...
-
cdaファイルをアンドロイドにコ...
-
mp4ファイルの「メディアの作成...
-
ローカルファイルのhtmlを作っ...
-
AngelBrowserのブックマークの移行
-
itunes
-
スマホで撮影した動画をテレビ...
-
Android端末でBitmap画像そのま...
-
スマホ本体のringtonesフォルダ...
-
スマホの音楽をパソコンで聞く...
-
Pixel 6atとPCをケーブルでつなぐ
-
アンドロイドSDカードへの動画...
-
AndroidスマホのmicroSDカード...
-
写真の日付情報がプリントされない
-
tar.ファイルのインストールに...
-
スマホで撮った写真をSDカード...
-
アンドロイドのUSBメモリー...
-
取込んだ音楽が再生できない
-
Androidのスマホを使用している...
-
Nexus7で自炊漫画を読みたいの...
おすすめ情報