public void onPictureTaken(byte[] data, Camera camera)
{
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Folder/Raw Image");
imagesFolder.mkdirs();
Date d = new Date();
CharSequence s = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime());
File output = new File(imagesFolder, s.toString() + ".jpg");
Uri uriSavedImage = Uri.fromFile(output);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriSavedImage);
imageFileOS.write(data);
imageFileOS.flush();
imageFileOS.close();
Toast.makeText(AndroidCamera.this,
"Image saved: ",
Toast.LENGTH_LONG).show();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{}
Log.d("Log", "onPictureTaken - jpeg");
File filenew = new File(android.os.Environment.getExternalStorageDirectory(),"Folder/Raw Image");
bitmap=BitmapFactory.decodeFile(filenew.getAbsolutePath());
每次拍摄图像时,图像保存到文件夹“文件夹”中的子文件夹“Raw Image”。我需要检索此图像以进行进一步处理。所以我使用了Bitmapfactory.options。所有这一切都必须在一键按下完成。必须处理保存的每个图像。我怎样才能以这种方式检索。
答案 0 :(得分:0)
如果您正在拍照,那么您可以startActivityForResult
,在此过程中您必须使用URI
。 URI
是您为图片指定的路径。
现在,在onActivityResult(..)
来电期间,您可以执行以下操作:
try {
Bitmap thumb = MediaStore.Images.Media.getBitmap(
activity.getContentResolver(), fileUri);
photo.setImageBitmap(thumb);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fileUri
是我所谈论的图片的URI
。此处photo
是ImageView
。此外,在使用不同设备时,您可能会收到错误,因此我建议您将URI
路径保存在SharedPreference
中。
答案 1 :(得分:0)
你指的是错误的道路:
Environment.getExternalStorageDirectory().toString() + "/"+ Folder + "Raw Image"+ ".jpg";
但你已经创建了这样的文件夹,
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Folder/Raw Image");
试试这种方式,它可能对你有帮助。
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Folder/RawImage");
imagesFolder.mkdirs();
File output = new File(imagesFolder,"temp" + ".jpg");
上面我们已经声明了一个静态文件名。每次图像捕获都将替换该文件。 现在你知道了文件路径,
String mFilePath = Environment.getExternalStorageDirectory() + "Folder/RawImage/temp.jpg";
您可以通过以下方式使用此文件路径来显示位图。
myImage.setImageUri(Uri.fromFile(new File("Your file path")));
Or with:
myImage.setImageUri(Uri.parse(new File("Your file path").toString()));
您可以获取位图:
Bitmap bmp=BitmapFactory.decodeStream(getContentResolver().openInputStream(Your image URI));