覆盖位图功能无法正常工作

时间:2011-10-20 09:39:33

标签: android android-layout android-emulator android-widget android-ndk

我正在使用函数来相互测量两个位图文件,它也会叠加。 我正在使用此功能将其覆盖在OneAnother上。

public static Bitmap combineImages(Bitmap cameraImage, Bitmap visionImage) { // can add a 3rd parameter 'String loc' if you want to save the new image - left some code to do that at the bottom 

     Bitmap finalImage = null; 
        int width, height = 0; 
          width = cameraImage.getWidth(); 
          height = cameraImage.getHeight(); 

        finalImage = Bitmap.createBitmap(width, height, cameraImage.getConfig()); 

        Canvas canvas = new Canvas(finalImage); 

        canvas.drawBitmap(cameraImage, new Matrix(), null);
        canvas.drawBitmap(visionImage, new Matrix(), null);

        // this is an extra bit I added, just incase you want to save the new image somewhere and then return the location 
        /*String tmpImg = String.valueOf(System.currentTimeMillis()) + ".png"; 

        OutputStream os = null; 
        try { 
          os = new FileOutputStream(loc + tmpImg); 
          finalImage.compress(CompressFormat.PNG, 100, os); 
        } catch(IOException e) { 
          Log.e("combineImages", "problem combining images", e); 
        }*/ 

        return finalImage; 
      } 

但保存此图像后,我会显示图像相互结合。它不是叠加的。我希望它可以叠加在一起。

请告诉我这个功能在哪里错了? 感谢。

1 个答案:

答案 0 :(得分:1)

这是覆盖两个位图的函数,s

private Bitmap overlayMark(Bitmap bmp1, Bitmap bmp2)    { 
    int bh = originalBitmap.getHeight();
    int bw = originalBitmap.getWidth();
    Bitmap bmOverlay = Bitmap.createBitmap(bw,bh,Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bmOverlay); 
    canvas.drawBitmap(bmp1, 0, 0, null);
    canvas.drawBitmap(bmp2, 0,0, null);
    return bmOverlay;
}