2010-12-31 24 views
13

Bir Bitmap'e png görüntüsünü açıp bazı değişiklikler yaptıktan sonra jpg olarak diske kaydetiyorum. Png'nin bazı saydam alanları olduğu durumda, bunlar siyah olarak kaydedilir. Bu varsayılan davranışı değiştirmenin bir yolu var, böylece görüntü beyaz gibi farklı bir renk arka planıyla kaydediliyor mu?Kaydedilmiş saydam bir bitmap'in arka plan rengini değiştirme

Teşekkürler

cevap

33

Yeni bir bitmap'e, örn.

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

sonra yerine

+2

Tuval resmini kaydederken arka plan rengi siyahlaşıyorum. Değiştirmek için başka bir yol .. Şimdiden teşekkürler .. –

+0

Siyah arka plan rengini değiştirmek için herhangi bir yolu? – Homen

+0

@RahulBaradia cevabımı kontrol edebilir, size yardımcı olabilir. –

0

bir görüntü kaydetmek ve bunu JPG ans kaydedemezsiniz onun saydam alanlar korumak için newBitmap kurtarmak, PNG olarak kaydedin zorunda ve sadece bu değil, ama ayarı ayarı

kaydetmeden önce: true için setHasAlpha() arasında böyle olurdu böylece, görüntü kaydetme öNCE

mBitmap.setHasAlpha(true); 

Kaydederken, kaydetmek için kullandığınız yöntemi kullanarak, PNG olarak görüntüyü kaydedin, örneğin:

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(); 
İlgili konular