在android中将图像覆盖在本机相机预览上

在android中将图像覆盖在本机相机预览上,android,image-processing,overlay,javacv,mylocationoverlay,Android,Image Processing,Overlay,Javacv,Mylocationoverlay,我尝试使用本机摄像头在实时视频上实现图像覆盖。代码如下: if (bmp != null) { Canvas canvas = mHolder.lockCanvas(); if (canvas != null) { canvas.drawBitmap(bmp, (canvas.getWidth() - bmp.getWidth()) / 2,(canvas.getHeight() - bmp.getHeight()) / 2, null);

我尝试使用本机摄像头在实时视频上实现图像覆盖。代码如下:

if (bmp != null) 
{ 
    Canvas canvas = mHolder.lockCanvas(); 
    if (canvas != null)
    {
        canvas.drawBitmap(bmp, (canvas.getWidth() - bmp.getWidth()) / 2,(canvas.getHeight() - bmp.getHeight()) / 2, null); 
        canvas.drawBitmap(drawable,0,0, null); 
        mFps.draw(canvas, (canvas.getWidth() - bmp.getWidth()) / 2, 0); 
        mHolder.unlockCanvasAndPost(canvas); 
    } 
    bmp.recycle(); 
}
但当我运行程序时,它会显示强制关闭。 我使用的图像大小是751 x 500。 有什么建议吗?或者其他的方法


提前感谢您的输入。

发布与drawable相关的代码。同时发布android logcat中存在的特定错误。否则就很难帮助了。一种可能的猜测是,“可绘制”大小可能大于bmp大小。>公共静态位图叠加位图bmp1,位图bmp2{>位图bmOverlay=Bitmap.createBitmapbmp1.getWidth,>bmp1.getHeight,bmp1.getConfig;>Canvas Canvas=new CanvasbmOverlay;>Canvas.drawBitmapbmp1,0,0,null;>Canvas.drawBitmapbmp2,0,0,null;>return bmOverlay;>}>public void run{>Log.iTAG,开始处理线程;>mFps.init;>while true{>Bitmap bmp=null;>Bitmap bmpz;>bmp=processFramemCamera;>bmpz=overlaybmp,drawable}您应该通过编辑问题来放置代码。别担心,我现在为您做了。