2010-12-31 5 views
13

Sto aprendo un'immagine png in una bitmap, apportando alcune modifiche e salvandola su disco come jpg. Nel caso in cui il png abbia alcune aree trasparenti, vengono salvate in nero. C'è un modo per modificare questo comportamento predefinito in modo che l'immagine venga salvata con uno sfondo di colore diverso come bianco?Come cambiare il colore di sfondo di una bitmap trasparente salvata

Grazie

risposta

33

È possibile disegnarlo in una nuova bitmap, ad es.

Bitmap newBitmap = Bitmap.createBitmap(image.getWidth(), image.getHeight(), image.getConfig()); 
Canvas canvas = new Canvas(newBitmap); 
canvas.drawColor(Color.WHITE); 
canvas.drawBitmap(image, 0, 0, null); 

quindi salvare newBitmap invece

+2

Quando sto salvando l'immagine della tela ... colore di sfondo Mi sto facendo nero. Qualsiasi altro modo per cambiare .. Grazie in anticipo .. –

+0

Un modo per cambiare il colore dello sfondo nero? – Homen

+0

@RahulBaradia puoi controllare la mia risposta potrebbe aiutarti. –

0

Per salvare un'immagine e mantenere le sue aree trasparenti, non è possibile salvarlo ans JPG, dovete salvarlo come PNG, e non solo, ma l'impostazione della impostazione di setHasAlpha() true pRIMA salvare l'immagine, quindi sarebbe così:

prima di salvare:

mBitmap.setHasAlpha(true); 

E quando si salva, salvare l'immagine come PNG usando qualunque metodo si sta utilizzando per il salvataggio, ad esempio:

File file = new File(folderDir, name); 
try { 
    file.createNewFile(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
FileOutputStream out = new FileOutputStream(file); 
mBitmap.setHasAlpha(true); 
mBitmap.compress(Bitmap.CompressFormat.PNG, 80, out); 
out.flush(); 
out.close();