如何将位图转换为kotlin中的FIle ?我使用Fragment



这是我的代码:

private val cameraResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK && result.data != null) {
val bitmap = result.data?.extras?.get("data") as Bitmap
binding.ivProfile.loadImage(bitmap)
}
}

结果类型是位图,但服务器需要的必需类型是File。那么我如何将位图转换为文件?谢谢你的回答。

试试这个

//create a file to write bitmap data
File f = new File(context.getCacheDir(), filename);
f.createNewFile();
//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();