Android 如何提高位图质量?
在我正在使用的应用程序中,一个按钮打开相机。拍照时,该图片将作为位图加载到应用程序中。这些图片是非常像素化的。在位图加载到我的应用程序后,如何提高其质量 迄今为止的代码:Android 如何提高位图质量?,android,bitmap,Android,Bitmap,在我正在使用的应用程序中,一个按钮打开相机。拍照时,该图片将作为位图加载到应用程序中。这些图片是非常像素化的。在位图加载到我的应用程序后,如何提高其质量 迄今为止的代码: private static final int CAMERA_PIC_REQUEST = 2500; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC
private static final int CAMERA_PIC_REQUEST = 2500;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button capture = (Button) findViewById(R.id.captureButton);
Button flip = (Button) findViewById(R.id.flipButton);
final TextView text = (TextView) findViewById(R.id.text);
capture.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
text.setVisibility(View.GONE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
flip.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode == CAMERA_PIC_REQUEST){
Bitmap image = (Bitmap) data.getExtras().get("data");
ImageView imageView = (ImageView) findViewById(R.id.ImageView01);
imageView.setImageBitmap(image);
}
}
}
不要从数据中获取该图像,它始终是低质量图像。尝试使用文件路径并从文件路径获取图像 开放式摄像机
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(path));
startActivityForResult(intent, CAMERA_PIC_REQUEST);
当您返回onActivityResult时,图像将存储到您定义的路径。你可以从那里得到高分辨率的图像。或者,您也可以使用一个函数来获取最后捕获的图像
private String getLastImagePath() {
final String[] imageColumns = { MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA };
final String imageOrderBy = MediaStore.Images.Media._ID + " DESC";
Cursor imageCursor = managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns,
null, null, imageOrderBy);
if (imageCursor.moveToFirst()) {
int id = imageCursor.getInt(imageCursor
.getColumnIndex(MediaStore.Images.Media._ID));
String fullPath = imageCursor.getString(imageCursor
.getColumnIndex(MediaStore.Images.Media.DATA));
return fullPath;
} else {
return "";
}
}
此函数将返回上次捕获的图像路径。我如何知道路径是什么?是否有相机自动存储图片的标准通用路径?删除该行,它是我的内部类,用于将日志写入logcat。您需要为图像创建一个存储路径,例如:“File newfolder=new File(root,mypicture)”;路径=新文件(newfolder,File.separator+“temp.png”);'