BAL
unread,Feb 2, 2011, 11:02:26 PM2/2/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to 日本Androidの会
はじめて投稿させていただきます。
現在Galaxy Tabでカメラを起動してプレビュー画面の上にBitmapを合成した画像を保存するアプリを開発しています。
プレビュー上Bitmapのオーバーレイはできているのですがそのまま撮影し画像を保存した際に合成したBitmap画像がY方向(縦)に長くなってし
まいます。
仕様としてはカメラプレビューするSurfaceViewにBitmapをオーバーレイ表示するOverlayVeiwをaddContentView
して表示しCamera.takePictureのonPictureTakenコールバックで処理しています。
//オーバーレイクラス
private OverlayView overLay;
public void onCreate(Bundle savedInstanceState) {
/-----------省略--------------/
//SurfaceViewを継承したカメラプレビュークラス
setContentView(new CameraPreview(this));
//オーバーレイするためViewを追加
overLay = new OverlayView(this);
addContentView(overLay,new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
/-----------省略--------------/
}
//撮影、合成処理
public void onPictureTaken(byte[] data, Camera camera) {
//カメラプレビュー画像
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
// オーバーレイイメージ viewから画像を取得
Bitmap overlayBmp = overLay.getDrawingCache();
//空のビットマップ
Bitmap blankBitmap =
Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),
Bitmap.Config.ARGB_8888);
//キャンバスを作成
Canvas canvas = new Canvas(blankBitmap);
//画像を合成
canvas.drawBitmap(bitmap, null,new Rect(0, 0, bitmap.getWidth(),
bitmap.getHeight()), null);
canvas.drawBitmap(overlayBmp, null,new Rect(0, 0, bitmap.getWidth(),
bitmap.getHeight()), null);
/-----------省略--------------/
}
色々調べていたのですがカメラプレビュー画像(bitmap)のサイズがオーバーレイ用のViewより取得した画像(overlayBmp)とことなっ
ておりそれが原因でoverlayBmpの画像が変形していることがわかりました。
しかしながら具体的な解決策がわからず悩んでおります。
申し訳ございません。お分かりになる方がいましたらご教授ください
よろしくお願いいたします