Android Studio-将位图转换为java.io.File

Android Studio-将位图转换为java.io.File,java,android,bitmap,java-io,Java,Android,Bitmap,Java Io,我已经从一个视频文件创建了一个视频缩略图。我需要做的是从位图创建java.io.File,以便将缩略图上传到服务器。如何才能做到这一点 Bitmap thumb = ThumbnailUtils.createVideoThumbnail(videoFile.getPath(), MediaStore.Video.Thumbnails.FULL_SCREEN_KIND); File thumbFile = ? 可以使用以下代码: //create a file to write bitmap

我已经从一个视频文件创建了一个视频缩略图。我需要做的是从
位图创建
java.io.File
,以便将缩略图上传到服务器。如何才能做到这一点

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(videoFile.getPath(), MediaStore.Video.Thumbnails.FULL_SCREEN_KIND);

File thumbFile = ?

可以使用以下代码:

 //create a file to write bitmap data
File f = new File(context.getCacheDir(), filename);

//f.createNewFile(); (No need to call as FileOutputStream will automatically create the file)

//Convert bitmap to byte array
Bitmap bitmap = your bitmap;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
byte[] bitmapdata = bos.toByteArray();

//write the bytes in file
FileOutputStream fos = new FileOutputStream(f);
fos.write(bitmapdata);
fos.flush();
fos.close();
您也可以尝试这种方法:它不会将位图转换为字节数组

private static void bitmap_to_file(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);
  }
}

待办事项代码经常发布在这里。只要谷歌一下。或者读一本贴着安卓标签的二十页书。原则上,您可以将位图压缩为文件输出流。谢谢。。我一直在找,但似乎找不到。这将帮助您将位图转换为字节数组。坏主意。您可以将位图直接压缩到FileOutputStream。错。FileOurputStream将创建该文件。删除该语句,因为它容易混淆且不需要。这不起作用。。实现此目的的其他方法?是否未创建文件?