我从视频文件创建了一个视频缩略图。我需要做的是从Bitmap
创建一个java.io.File
,以便将缩略图上传到服务器。怎么可能做到这一点?Android Studio - 将位图转换为java.io.File
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(videoFile.getPath(), MediaStore.Video.Thumbnails.FULL_SCREEN_KIND);
File thumbFile = ?
我从视频文件创建了一个视频缩略图。我需要做的是从Bitmap
创建一个java.io.File
,以便将缩略图上传到服务器。怎么可能做到这一点?Android Studio - 将位图转换为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);
}
}
代码做做已发布这里经常这样。只是谷歌一点。或阅读二十页标签的android。原则上,您将位图压缩为文件输出流。 – greenapps
谢谢..一直在寻找它,但似乎我找不到它。 – SNos
这将帮助你http://stackoverflow.com/questions/17674634/saving-and-reading-bitmaps-images-from-internal-memory-in-android – MdFazlaRabbiOpu