xamarin.forms从imagesource获取字节数组

时间:2016-05-23 08:53:17

标签: image svg xamarin.forms

我有svg xml,我可以通过在我的xamarin.forms的PCL项目中使用XamSVG库转换为ImageSource或FileImageSource。

我想将ImageSource / FileImageSource转换为字节数组(以获取位图)。

这可能吗?

3 个答案:

答案 0 :(得分:4)

ImageSource不会公开任何检索原始图像源的机制。相反,您需要手动保留对用于创建图像的原始源的引用。

答案 1 :(得分:3)

找到解决方案!!!

        StreamImageSource streamImageSource  = (StreamImageSource) some image source...
        System.Threading.CancellationToken cancellationToken = System.Threading.CancellationToken.None;
        Task<Stream> task = streamImageSource.Stream(cancellationToken);
        Stream stream = task.Result;

答案 2 :(得分:1)

其他解决方案:

 public static byte[] ReadFully(Stream input)
    {
        using (MemoryStream ms = new MemoryStream())
        {
            input.CopyTo(ms);
            return ms.ToArray();
        }

    }

Stream和MemoryStream是System.IO类。

然后像这样使用它:

            byte[] TargetImageByte = ReadFully(_data.Source);

_data.source是MediaFile类型。