0

我的图像已被裁剪。我希望将该图像保存到文件夹(sdcard)...我已经完成了裁剪图像并显示到 imageview,但我的问题是,我不知道如何将图像裁剪保存到 sdcard?

这是我的代码成功裁剪图像..

Bundle extras = data.getExtras();

if (extras != null) {               
    Bitmap photo = extras.getParcelable("data");
    mImageView.setImageBitmap(photo);
}

我可以在哪里添加代码来保存已裁剪的图像?

4

1 回答 1

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"/>
于 2013-01-16T13:58:38.037 回答