android 在已有的图片上画矩形框

用已有图片做为背景,使用Canvas在该背景图片上画矩形框,然后加载此图片报以下错误:
Caused by: java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor。网上的解决办法都是加载res下的图片,对我这来说不起作用啊。
要实现的效果如下:
图片说明

请问实现此效果,大家是如何实现的?

应该是Immutable和mutable的问题,一个bitmap时有这个属性的:Immutable表示不可以修改,mutable表示可以修改.很显然,你需要一个属性为mutable(可以修改)的bitmap.一般情况下,我们获取的bitmap都是Immutable(不可以修改的),所以,你需要转换一下,得到一张可以修改的bitmap.然后就可以修改这行图片,绘制你需要的矩形框.

你需要图像识别技术了
Tesseract技术 和 Mezzofanti_java_code 你可以研究一下。、

protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

if (mBitmap != null) {
if (mPX != null && mPY != null) {
for (int i = 0; i < mPX.length; i++) {
if (mDisplayStyle == 1) {
canvas.drawRect(mPX[i] - dis/4, mPY[i] - dis/4, mPX[i] + dis/2, mPY[i] + dis/4, mPaint);
}
if (mDisplayStyle == 2) {
canvas.drawRect(mPX[i] - dis/4, mPY[i] - dis/4, mPX[i] + dis/2, mPY[i] + dis/4, mPaint);
}
if (mDisplayStyle == 3) {
canvas.drawRect(mPX[i] - dis/2, mPY[i] - dis/4, mPX[i] + dis/2, mPY[i] + dis/4, mPaint);
}
}

问题已解决,谢谢大家热情的帮忙,导致出错的原因和狂发飘飘 说的一样,解决办法可以查看我的博客:“android 在已有的图片上画矩形框”

你好,我想在位图上画矩形或圆什么的,这样为什么实现不了
图片说明
求帮助,谢谢,我的QQ:2568889532