0

作为项目的一部分,我正在使用以下 java 代码进行人脸检测。我遇到了一个奇怪的错误

BitmapFactory.Options BitmapFactoryOptionsbfo = new BitmapFactory.Options();

         /*BitMapFactory-Creates Bitmap objects from various sources, including 
          * files, streams, and byte-arrays. 
          */

         BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565; 

imageWidth = myBitmap.getWidth();

     imageHeight = myBitmap.getHeight();

    myFace = new FaceDetector.Face[numberOfFace];

    myFaceDetect = new FaceDetector(imageWidth, imageHeight, numberOfFace);

     numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace); 

     }

//i get error over there in R.drawable.pics      
myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pics, BitmapFactoryOptionsbfo);

我应该在图片中给出图片文件的名称,但它一直给我一个错误图片无法解析或不是一个字段。所以我将图片文件的名称设置为 pic PS 它是可绘制文件夹中的 jpg 文件。我还将单引号内的文件命名为“pic”——它给了我无效的字符常量错误。

我也在双引号内命名它,但它仍然不起作用。我还将它命名为“pic.jpg”仍然不起作用

4

2 回答 2

0

只需检查以下代码行:

 BitmapFactory.Options options = new BitmapFactory.Options();
 options.inPreferredConfig =  Bitmap.Config RGB_565;
 Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon,options);

让我知道它是否有效?还要检查输入R.drawable 后出现的图像名称。

编辑:

如果您仍然无法从 drawable 访问图像,请将您的图像说 pic.png 复制到资产文件夹并使用以下代码访问它:

更新代码:

try {
       InputStream bitmap=getAssets().open("icon.png");
       Bitmap bit=BitmapFactory.decodeStream(bitmap);
       img.setImageBitmap(bit);
     } catch (IOException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
     }
于 2012-05-23T11:58:59.620 回答
0

您的代码中可能还有另一个名为“pics”的变量。

尝试将其保存在不同的文件夹中,例如 MyPics。并以不同的方式命名图片,例如 xyz1.jpg

在这种情况下,将行写为:

myBitmap = BitmapFactory.decodeResource(getResources(), R.MyPics.xyz1, BitmapFactoryOptionsbfo);

另外,您是否将“myBitmap”初始化为位图图像?意思是,您是否包括以下行:

Bitmap myBitmap;

在您的代码中,在执行图像读取之前?

于 2012-05-23T09:21:49.147 回答