1

2 つのビットマップを並べて 1 つのビットマップにマージしたいと考えています。次のコードはサブボトムのマージです。サイドバイサイドを 1 つのビットマップにマージするにはどうすればよいですか?

public Bitmap mergeBitmap(Bitmap fr, Bitmap sc) 
{ 

    Bitmap comboBitmap; 

    int width, height; 

    width = fr.getWidth() + sc.getWidth(); 
    height = fr.getHeight(); 

    comboBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

    Canvas comboImage = new Canvas(comboBitmap); 


    comboImage.drawBitmap(fr, 0f, 0f, null); 
    comboImage.drawBitmap(sc, 0f , fr.getHeight(), null); 
    return comboBitmap;

}
4

2 に答える 2

3
public Bitmap mergeBitmap(Bitmap fr, Bitmap sc) 
    { 

        Bitmap comboBitmap; 

        int width, height; 

        width = fr.getWidth() + sc.getWidth(); 
        height = fr.getHeight(); 

        comboBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

        Canvas comboImage = new Canvas(comboBitmap); 


        comboImage.drawBitmap(fr, 0f, 0f, null); 
        comboImage.drawBitmap(sc, fr.getWidth(), 0f , null); 
        return comboBitmap;

    }
于 2013-01-10T18:26:55.520 に答える
0

この記事では、2 つの画像を上下に組み合わせるプロセスについて説明します (PNG または JPG でのみ機能します)。2 つのビットマップを渡す必要があり、Canvas クラスを使用して結合されます。いくつかの小さな変更を加えて、2 つの画像を並べて表示できます。

public Bitmap combineImages(Bitmap c, Bitmap s) { // 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 cs = null; 

    int width, height = 0; 

    if(c.getHeight() > s.getHeight()) { 
      width = c.getWidth() + s.getWidth(; 
      height = c.getHeight()); 
    } else { 
      width = c.getWidth() + s.getWidth(); 
      height = s.getHeight(); 
    } 

    cs = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

    Canvas comboImage = new Canvas(cs); 

    comboImage.drawBitmap(c, 0f, 0f, null); 
    comboImage.drawBitmap(s, c.getWidth(), 0f, 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); 
      cs.compress(CompressFormat.PNG, 100, os); 
    } catch(IOException e) { 
      Log.e("combineImages", "problem combining images", e); 
    }*/ 

    return cs; 
  } 
于 2013-01-10T20:17:36.053 に答える