2013-03-01 22 views
7

Android'in dağıtılmış bir uygulaması üzerinde çalışıyorum. Tek bir görüntüyü 4 parçaya böldü ve sonra işledim. Şimdi 4 bitmap görüntüyü tek bir görüntüde birleştirmek istiyorum. Bunu nasıl yapabilirim? Eğer birinde dört bitmapleri birleştirmek için işinizi görecektir kod eserin ardından böyleAndroid'de birden çok görüntüyü tek bir görüntüde nasıl birleştirilir?

+0

http://stackoverflow.com/questions/6944061/android-merge-two-images bu size [bindirme iki resimde arasında – RAAAAM

+0

Olası yinelenen yardımcı olacaktır Umut Bir imageview ayarlamak için android] (http://stackoverflow.com/questions/2739971/overlay-two-images-in-android-to-set-an-imageview) – GSerg

cevap

17
Bitmap[] parts = new Bitmap[4]; 
    Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(result); 
    Paint paint = new Paint(); 
    for (int i = 0; i < parts.length; i++) { 
     canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i/2), paint); 
    } 

şey =)

+1

Bu demoyu kontrol edin, bir kaçını birleştirme sorununu çözmenize yardımcı olabilir tek bir görüntü oluşturmak için görüntüler http://whats-online.info/science-and-tutorials/92/how-to-combine-multiple-images-into-a-single-image-in-android/ –

6

. Dört görüntüyü birleştirmek için bu yöntemi 3 kez çağırın.

Adım 1: birleştirin ilk iki görüntü

Adım 2: yeniden adlandırma iki resim birleştirin

Adım 3: birleştirin iki yeni oluşturulan nbspbitmap'lerdir

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { 
     Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig()); 
     Canvas canvas = new Canvas(bmOverlay); 
     canvas.drawBitmap(bmp1, new Matrix(), null); 
     canvas.drawBitmap(bmp2, 0, 0, null); 
     return bmOverlay; 
    } 
0

Bir işlev oluşturmanız gerekir bitmap türü. Yani, bir bitmap veri türü döndürür. İşlev, bir dizi olan bitmap veri türü argümanına sahip olmalıdır.

Download demo here

Sen Bitmapin dizi olarak işlevine görüntüleri geçecek. Bu, sadece dört görüntüyü değil, herhangi bir görsel boyutunu birleştiren fonksiyonumuzdur. Son olarak yapılır

private Bitmap mergeMultiple(Bitmap[] parts){ 

    Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(result); 
    Paint paint = new Paint(); 
    for (int i = 0; i < parts.length; i++) { 
     canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i/2), paint); 
    } 
     return result; 
    } 

.. Read more here

İlgili konular