无法将位图保存为JPEG

时间:2012-05-29 16:36:11

标签: java android

我有一个用于绘图的Bitmap对象,我想使用JPEG格式在SDCARD上保存图像。我有以下代码:

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

1 个答案:

答案 0 :(得分:1)

jpeg格式不支持透明度。这就是为什么它在保存时会将透明度变为黑色。