大きな画像を表示する

OpenCv-CookBookの次のテーマは 『画像サイズを変更する』 だが その前に 乱暴にも 画面をはみ出す Window7のサンプル画像 コアラ.jpg(1024*768)を リソースのdrawableフォルダに貼り付け表示してみた。(名前はkoala.jpgとrename)
当然 画面をはみ出すためエラーになるかと思ったが 期待を裏切って(笑) 表示された。

【ソース抜粋】
Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.koala);
Bitmap src2 = src.copy(Bitmap.Config.ARGB_8888, true);
Mat mat = android.BitmapToMat(src2);
Bitmap dsc= Bitmap.createBitmap(mat.width(), mat.height(), Bitmap.Config.ARGB_8888); 
android.MatToBitmap(mat, dsc);

このとき srcmatdsc 全て 1536*1152 になっていた。 (元サイズの1.5倍)

ちなみに SDCARDイメージの DCIM/100ANDROに格納し
String path=Environment.getExternalStorageDirectory()+”/DCIM/100ANDRO/koala.jpg”;
Bitmap src = BitmapFactory.decodeFile(path);
とした場合は 元サイズ 1024*768のまま だった。(理由はわかりません・・)

ただし エミュレータで縦横回転すると メモリ不足でエラーになる。(実機003SHでは回転もOK)

図に乗って  サイズ 3552*2664のJPGを読み込もうとすると 当然エラー(実機003SHでもNG)メモリ使いすぎ!!!

次は 無謀に大きなままJpegを読み込むことなく、元画像を読み込む段階で小さくして読み込む処理を実装しよう。

お断り この処理では 特にMatを経由させる必要は、ありません。(笑い)

 

スポンサーリンク
Rectangle大広告
Rectangle大広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする