2013-03-01 13 views
7

Sto lavorando su un'applicazione distribuita di Android. Ho diviso una singola immagine in diciamo 4 parti e poi l'ho elaborata. Ora voglio combinare 4 immagini bitmap in una singola immagine. Come lo posso fare?Come combinare più immagini in una singola immagine in Android?

+0

http://stackoverflow.com/questions/6944061/android-merge-two-images Spero che questo vi aiuterà a – RAAAAM

+0

Eventuali duplicati di [sovrapposizione di due immagini in Android per impostare una vista di immagini] (http://stackoverflow.com/questions/2739971/overlay-two-images-in-android-to-set-an-imageview) – GSerg

risposta

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); 
    } 

Qualcosa di simile =)

+1

Controllare questa demo potrebbe aiutarti a raggiungere il problema di unire più immagini per formare una singola immagine http://whats-online.info/science-and-tutorials/92/how-to-combine-multiple-images-into-a-single-image-in-android/ –

6

seguente pezzo di codice farà il trucco per voi di combinare quattro bitmap in uno. Chiamare questo metodo 3 volte per combinare le quattro immagini.

Fase 1: Combinare prime due immagini

Fase 2: combinare le ridenominazione due immagini

Fase 3: Unire il i due nuovi bitmap creati

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

È necessario creare una funzione di tipo bitmap. Cioè, restituisce un tipo di dati bitmap. La funzione dovrebbe avere un argomento di tipo di dati Bitmap che è una matrice.

Download demo here

che passerà il vostro immagini per la funzione come matrice di bitmap. Questa è la nostra funzione per unire non solo quattro immagini ma qualsiasi dimensione di immagini.

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; 
    } 

Infine si è fatto .. Read more here

Problemi correlati