AndroidのMedia.insertImageで画質が落ちる

カメラで撮影した画像を加工したりして保存する際MediaStore.Images.Media.insertImageを使うと画質がかなり落ちるみたい。ということで加工したBitmapをgetContentResolver().insertで格納することにした。

//////SDカードに画像を保存
//デバイスの外部ストレージへのパスSDカード
public final String PATH = Environment.getExternalStorageDirectory().toString();
//この処理を行うまでに加工されたBitmapオブジェクト
Bitmap bitmap;   
FileOutputStream fos = null;
//ファイル名の生成。日付形式
Date today = new Date();   
SimpleDateFormat sdFormat= new SimpleDateFormat("yyyy_MM_dd_hh_mm_ss_SSS");  
String fileName = sdFormat.format(today) + ".jpg";

File file = new File(PATH,fileName);
    try {
        if (file.createNewFile()) {
            fos = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);
            fos.close();
        }
    } catch (FileNotFoundException e) {
        Log.e(TAG, e.getMessage());
    } catch (IOException e) {
        Log.e(TAG, e.getMessage());
    }

Uri uri = Uri.fromFile(file);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE,uri.getLastPathSegment());
values.put(MediaStore.Images.Media.DISPLAY_NAME,uri
    .getLastPathSegment());
values.put(MediaStore.Images.Media.MIME_TYPE,"image/jpeg");
values.put(MediaStore.Images.Media.DATA,uri.getPath());
values.put(MediaStore.Images.Media.DATE_TAKEN,System
    .currentTimeMillis());

Uri imageUri = getContentResolver()
    .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
    values);