我有一個用於繪製的位圖對象,並且我想使用JPEG格式將圖像保存在SDCARD上。我有以下代碼:無法將位圖保存爲JPEG
public void saveBitmap() throws IOException {
String path=Environment.getExternalStorageDirectory().getAbsolutePath()+"/output.jpg";
File output=new File(path);
BufferedOutputStream ous = null;
try {
ous=new BufferedOutputStream(new FileOutputStream(output));
mBitmap.compress(CompressFormat.JPEG, 100, ous);
ous.flush();
ous.close();
} finally {
if (ous!=null) {
try {
ous.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("closing", e.getMessage());
}
}
}
}
但執行此功能後,我總是可以看到帶有黑色背景的jpeg文件。如果我將格式更改爲PNG,則全部都可以。我在哪裏犯了一個錯誤?
代碼繪製:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(0x00FFFFFF);
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
}
你的意思是說它只是黑色,或者你的圖像背後是黑色背景而不是透明的?如果你的意思是後者(我認爲你不這樣做,但是)JPEG不支持透明度。 – kcoppock
我的意思是第一個。 – user1166635