我有那个拍照并将其存储到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。
答案 0 :(得分:1)
public static final String
ACTION_IMAGE_CAPTURE
在
API level 3
标准意图行动中添加了可以发送的动作 相机应用程序捕获图像并将其返回。来电者可以传递额外的
EXTRA_OUTPUT
来控制此图片的位置 将写。如果EXTRA_OUTPUT
不存在,则为小 size图像作为额外字段中的Bitmap对象返回。这是 适用于只需要小图像的应用程序。 如果EXTRA_OUTPUT
存在,然后将写入完整大小的图像 Uri值为EXTRA_OUTPUT
。