java - Xamarin android 图像 URI 到字节数组

标签 java c# android xamarin xamarin.android

我只是想将图片上传到服务器。

当我从中选择图像时,我会得到该图像的 URI。 问题是如何将此 URI 转换为 byte[] 字节数组?

不多也不少。这是我的问题

这就是我一直在尝试的。

我试图重写这个https://colinyeoh.wordpress.com/2012/05/18/android-convert-image-uri-to-byte-array/ 到 C#

    public byte[] convertImageToByte(Android.Net.Uri uri)
    {
        byte[] data = null;
        try
        {

            ContentResolver cr = this.ContentResolver;
            var inputStream = cr.OpenInputStream(uri);
            Bitmap bitmap = BitmapFactory.DecodeStream(inputStream);
            var baos = new ByteArrayOutputStream();
            bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, baos);
            data = baos.ToByteArray();
        }
        catch (FileNotFoundException e)
        {
            e.PrintStackTrace();
        }
        return data;
    }

但是错误...

Error CS1503: Argument `#3' cannot convert `Java.IO.ByteArrayOutputStream' expression to type `System.IO.Stream' (CS1503) (Foodle.Droid)

如何解决这个问题?或从图库中获取图像并将其转换为字节数组的新代码很好。

帮助!

最佳答案

public byte[] convertImageToByte(Android.Net.Uri uri)
{
    Stream stream = ContentResolver.OpenInputStream(uri);   
    byte[] byteArray;

    using (var memoryStream = new MemoryStream())
    {
       stream.CopyTo(memoryStream);
       byteArray = memoryStream.ToArray();
    }
    return byteArray;
}

关于java - Xamarin android 图像 URI 到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43753989/

相关文章:

java - 这两个 Java 泛型方法接受相同的数据类型吗?

java - 为什么不能总是正确地对两个浮点值求和?

java - Eclipse 在调试期间自行更改变量

c# - 使用向下转换浅复制列表

c# - 使用 Microsoft 的 Visual UI Automation 验证

android - 通过 playstore firebase oauth2 分发时谷歌登录不工作

Android flavor 测试 .R 文件

java - 从字符串列表中删除字符串项

c# - 如何将动态sql列读入C#

android - Gradle 构建不正确 - "Could not find method v2SigningEnabled for arguments [false]"