我有一个svg xml,可以使用XamSVG库在我的xamarin.forms的PCL项目中将其转换为ImageSource或FileImageSource。
我想将ImageSource / FileImageSource转换为字节数组(以获取位图)。
这可能吗?
我有一个svg xml,可以使用XamSVG库在我的xamarin.forms的PCL项目中将其转换为ImageSource或FileImageSource。
我想将ImageSource / FileImageSource转换为字节数组(以获取位图)。
这可能吗?
ImageSource没有公开任何机制来检索原始图像源。相反,您需要手动保留对用于创建图像的原始源的引用。
StreamImageSource streamImageSource = (StreamImageSource) some image source...
System.Threading.CancellationToken cancellationToken = System.Threading.CancellationToken.None;
Task<Stream> task = streamImageSource.Stream(cancellationToken);
Stream stream = task.Result;
ImageSource
已经是 StreamImageSource
类型的情况。它不能创建任何 ImageSource
的输出流。 - noelicus另一个解决方案:
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
类型。