私は2つのビットマップを持っています。1つは幅720x404高さです。もう1つは1280x550です。私はこの関数を使用しました。
public Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
Bitmap bmp2new = getResizedBitmap(bmp2, bmp1.getHeight(), bmp1.getWidth(), bmp2.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.drawBitmap(bmp2new, 0, 0, null);
return bmOverlay;
}
今、それは私に両方を示しています。オーバーレイ。1つ目はビデオからのスクリーンキャプチャで、2つ目は私が描いたキャンバスです。問題は、画面の余白にあるものに何かを描くと、ビデオが2番目の画像と同じように引き伸ばされるため、正しくオーバーレイされない(オフセット)ことです。両方の画像を配置するために何ができますが、画面キャプチャは数ピクセルのオフセットで開始されるため、正しく配置されますか?
私は試した:
int left = (int)((bmp2.getWidth() - (bmp1.getWidth()*(bmp2.getHeight()/bmp1.getHeight())))/2.0);
Bitmap bmp1new = getResizedBitmap(bmp1, bmp2.getHeight(), ((bmp2.getWidth() - (bmp1.getWidth()*(bmp2.getHeight()/bmp1.getHeight())) , bmp1.getConfig());
Bitmap bmptest = Bitmap.createBitmap(bmp1new, left, 0,bmp1new.getWidth() - left, bmp1new.getHeight());
しかし運がなかった、そして今私はさらに混乱している