如何将图像保存到kotlin中的画廊

Posted

技术标签:

【中文标题】如何将图像保存到kotlin中的画廊【英文标题】:how to save image to gallery in kotlin 【发布时间】:2021-10-09 13:51:36 【问题描述】:

我正在做一个从用户图库添加图像然后再次保存的项目,我使用下面的代码让用户选择图像并将其添加到应用程序中并且它有效但我不知道如何保存图像(稍后我将添加将编辑图像的按钮,所以我想知道如何在编辑后保存它)

lateinit var photo: ImageView

override fun onCreate(savedInstanceState: Bundle?) 
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)


    photo = findViewById<ImageView>(R.id.photo);
    val upload = findViewById<Button>(R.id.upload)


    val getaction = registerForActivityResult(
        ActivityResultContracts.GetContent(),
        ActivityResultCallback  uri ->
            photo.setImageURI(uri)
        
    )

    upload.setOnClickListener 
        getaction.launch("image/*")


    

【问题讨论】:

I used this code below to add the image and it's worked but I don't know how to save the image 添加什么?你为什么要一开始就复印?如果用户可以选择它,它已经在您的设备上并且“在图库中”。 设置成Imageview后不用再保存 @blackapps 我稍后会添加一些按钮来编辑图像,然后我会保存它,所以我想知道如何保存图像,我希望你明白我想要做什么跨度> 如果你编辑了一个“图像”,我不知道你有什么,因此我不知道你想保存什么。 【参考方案1】:

//使用下面的代码将uri保存到位图:

        //Create a bitmap using the uri from your code
     Bitmap bitmap = MediaStore.Images.Media.getBitmap(c.getContentResolver() , Uri.parse(paths));

// 获得位图后,您可以将其保存到存储中,请记住您可能需要权限,具体取决于您要保存图像的位置。

//Code to save bitmap to image on storage, filePath will be the path you wish to save it to.

    try 
    File file = new File(filePath);
    FileOutputStream fOut = new FileOutputStream(file);
    bitmap.compress(Bitmap.CompressFormat.PNG, 85, fOut);
    fOut.flush();
    fOut.close();

catch (Exception e) 
    e.printStackTrace();
    LOG.i(null, "Save file error!");
    return false;

【讨论】:

以上是关于如何将图像保存到kotlin中的画廊的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像从相机保存到 iPhone 画廊中的特定文件夹?

如何将图像保存在android画廊中

如何从 API 显示图像并在单击图像后将用户发送到视频链接? Kotlin,改造

使用 cordova 文件传输将图像/视频保存到 IOS 中的画廊

(Kotlin)如何将哈希图输出保存到文件中

如何在Java / Kotlin客户端库中为Google上的操作将一些数据保存到userStorage中