我的图像已被裁剪。我希望该图像保存到文件夹(SD卡)...我已经完成裁剪图像并显示到imageview,但我的问题是,我不知道如何保存图像裁剪到SD卡?
这是我的代码成功裁剪图像..
Bundle extras = data.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
mImageView.setImageBitmap(photo);
}
我可以添加代码来保存已裁剪的图像吗?
答案 0 :(得分:3)
尝试这种方式:
Bundle m_extras = data.getExtras(); // get the cropped bitmap Bitmap m_thePic = m_extras.getParcelable("data"); String m_path = Environment.getExternalStorageDirectory().toString(); File m_imgDirectory = new File(m_path + "/Images/"); if (!m_imgDirectory.exists()) m_imgDirectory.mkdir(); OutputStream m_fOut = null; File m_file = new File(m_path); m_file.delete(); String m_fileid = System.currentTimeMillis() + ""; m_file = new File(m_path, "/Images/" + m_fileid + ".png"); try { if (!m_file.exists()) m_file.createNewFile(); m_fOut = new FileOutputStream(m_file); Bitmap m_bitmap = m_thePic.copy(Bitmap.Config.ARGB_8888, true); m_bitmap.compress(Bitmap.CompressFormat.PNG, 100, m_fOut); m_fOut.flush(); m_fOut.close(); MediaStore.Images.Media.insertImage(getContentResolver(), m_file.getAbsolutePath(), m_file.getName(), m_file.getName()); } catch (Exception p_e) { }
在清单文件中添加以下权限。
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>