2016-12-25 58 views
0

我从视频文件创建了一个视频缩略图。我需要做的是从Bitmap创建一个java.io.File,以便将缩略图上传到服务器。怎么可能做到这一点?Android Studio - 将位图转换为java.io.File

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

File thumbFile = ? 
+0

代码做做已发布这里经常这样。只是谷歌一点。或阅读二十页标签的android。原则上,您将位图压缩为文件输出流。 – greenapps

+0

谢谢..一直在寻找它,但似乎我找不到它。 – SNos

+0

这将帮助你http://stackoverflow.com/questions/17674634/saving-and-reading-bitmaps-images-from-internal-memory-in-android – MdFazlaRabbiOpu

回答

0

可以使用下面的代码:

//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); 
    } 
} 
+0

'//将位图转换为字节数组。馊主意。您可以将位图直接压缩到FileOutputStream。 – greenapps

+0

'f.createNewFile();'。错误。 FileOurputStream将创建该文件。删除该语句,因为它是令人困惑和不需要的。 – greenapps

+0

这不工作..其他一些方法来实现这一目标? – SNos

相关问题