Java 拍摄照片并保存到SD而不损失质量

Java 拍摄照片并保存到SD而不损失质量,java,android,camera,compression,photo,Java,Android,Camera,Compression,Photo,我有一个应用程序,可以拍摄一张照片并将其存储到SD卡上,但是我拍摄的每一张照片都被极度压缩,质量非常低。我用全质量压缩它,所以我不确定它为什么这样做。有什么建议吗?代码如下: protected void takePhoto() { Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 0); } @Overrid

我有一个应用程序,可以拍摄一张照片并将其存储到SD卡上,但是我拍摄的每一张照片都被极度压缩,质量非常低。我用全质量压缩它,所以我不确定它为什么这样做。有什么建议吗?代码如下:

protected void takePhoto()
{
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, 0); 
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    currPhoto = (ImageView) findViewById(R.id.imageView1);

    if (requestCode== 0 && resultCode == Activity.RESULT_OK){
        Bitmap x = (Bitmap) data.getExtras().get("data");
        currPhoto.setImageBitmap(x);
        ContentValues values = new ContentValues();
        values.put(Images.Media.MIME_TYPE, "image/jpeg");
        Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
        OutputStream outstream;
        try {
            outstream = getContentResolver().openOutputStream(uri);

        x.compress(Bitmap.CompressFormat.JPEG, 90, outstream);
        outstream.close();
        } catch (FileNotFoundException e) {
            //
        }catch (IOException e){
            //
        }
    }
}
编辑:事实上,它似乎只保存缩略图到SD

来自:

公共静态最终字符串
ACTION\u IMAGE\u CAPTURE

添加到API 3级标准意图行动中,可发送至 相机应用程序捕获图像并返回

调用者可以传递一个额外的
extra_输出
,以控制此图像的位置 我会写的。如果不存在
额外的\u输出
,则会出现一个小错误 大小图像作为位图对象返回到额外字段中。这是 适用于只需要小图像的应用程序如果
存在额外的\u输出
,则会将全尺寸图像写入
EXTRA\u输出的Uri值

从:

公共静态最终字符串
ACTION\u IMAGE\u CAPTURE

添加到API 3级标准意图行动中,可发送至 相机应用程序捕获图像并返回

调用者可以传递一个额外的
extra_输出
,以控制此图像的位置 我会写的。如果不存在
额外的\u输出
,则会出现一个小错误 大小图像作为位图对象返回到额外字段中。这是 适用于只需要小图像的应用程序如果
存在额外的\u输出
,则会将全尺寸图像写入
EXTRA\u输出的Uri值


太棒了,谢谢你,这让我明白了。对于其他有同样问题的人,我需要的代码就是。太棒了,谢谢你,这帮助我理解了它。对于其他有同样问题的人来说,我需要的代码。