如何将位图图像转换为Uri

时间:2017-02-25 19:35:38

标签: android bitmap android-image

我在任何地方都找不到这个问题的答案。

位图图像在应用程序中处理,这意味着没有文件路径来获取图像。

以下是如何将Uri转换为位图

Select Results->>'Id'  From DataScreen order by CAST(Results->>'Id' AS INT)  ASC

我现在如何重新转换为Uri

2 个答案:

答案 0 :(得分:10)

URI是一组超级URL,表示它是文件的路径。而Bitmap是由点矩阵组成的数字图像.Bitmap表示数据,uri表示保存数据的位置。如果需要获取位图的URI,则只需将其保存在存储上即可。在android中你可以通过Java IO来完成它,如下所示:首先创建一个你要保存它的文件:

public File createImageFile() {
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
    String imageFileName = "JPEG_" + timeStamp + "_";
    File mFileTemp = null;
    String root=activity.getDir("my_sub_dir",Context.MODE_PRIVATE).getAbsolutePath();
    File myDir = new File(root + "/Img");
    if(!myDir.exists()){
        myDir.mkdirs();
    }
    try {
        mFileTemp=File.createTempFile(imageFileName,".jpg",myDir.getAbsoluteFile());
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    return mFileTemp;
}

然后冲洗它,你就会得到URi

 File file = createImageFile(context);
 if (file != null) {
    FileOutputStream fout;
    try {
        fout = new FileOutputStream(file);
        currentImage.compress(Bitmap.CompressFormat.PNG, 70, fout);
        fout.flush();
    } catch (Exception e) {
        e.printStackTrace();
    }
    Uri uri=Uri.fromFile(file);
}

这只是一个例子,不是所有Android版本的空闲代码。要使用上面的Uri和Android N,您应该使用FileProvider来提供文件。按照Commonsware的回答。

答案 1 :(得分:4)

使用compress() on Bitmap将位图写入文件。然后,很有可能use FileProvider提供该文件,其中getUriForFile() gives you the Uri corresponding to the file

IOW,你没有"转换"位图到Uri。您将位图保存在一个Uri

的位置