在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}您应该通过编辑问题来放置代码。别担心,我现在为您做了。