android - 将 android.graphics.Bitmap 转换为 java.io.File

标签 android android-bitmap

我想像这样使用分段上传将编辑后的位图图像上传到服务器,

multipartEntity.addPart("ProfilePic", new FileBody(file));

但我无法将Bitmap(android.graphics.Bitmap) 图像转换为File(java.io.File )。

我试图将它转换为字节数组,但它也没有用。

有人知道 android 的内置功能或任何将位图转换为文件的解决方案吗?

请帮忙...

最佳答案

应该这样做:

private static void persistImage(Bitmap bitmap, String name) {
  File filesDir = getAppContext().getFilesDir();
  File imageFile = new File(filesDir, name + ".jpg");

  OutputStream os;
  try {
    os = new FileOutputStream(imageFile);
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os);
    os.flush();
    os.close();
  } catch (Exception e) {
    Log.e(getClass().getSimpleName(), "Error writing bitmap", e);
  }
}

更改 Bitmap.CompressFormat 和扩展以适合您的目的。

关于android - 将 android.graphics.Bitmap 转换为 java.io.File,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22784656/

相关文章:

java - 单击按钮后如何获取 JSON 中的 id,并希望在 post 方法中再次发送该 id

android - 我尽量避免使用此代码在数据库中保存空记录,但它也会保存空记录

android - 使用 BitmapRegionDecoder 加载的图像在模拟器上没问题,但在设备上太大

android - 如何应用带边框的自定义图像 mask ?

android - 如何使用 SHOW_OR_CREATE_CONTACT 并为联系人设置照片?

android - ViewModel 如何在配置更改中幸存

java - 处理 Android 蓝牙 LE 断开通知

Android TextView Linkify 问题与电话号码和应用程​​序版本号

android - 在 ImageView 中设置图像时内存不足

java - 在Android中使用canvas和位图绘制8x8的正方形