将 UWP 可写位图转换为 XamarinForms 图像



有没有办法将UWP WriteableBitmap转换为XamarinForms Image?尝试简单的转换最终导致"无法将类型可写位图隐式转换为 Xamarin Forms Image"。

我之前必须将其转换为 base64 字符串吗?或者你会如何处理?

谢谢

您可以在

Xamarin.Forms.ImageSource中找到FromStream方法。根据您的要求,您可以通过DependencyService获取WriteableBitmap uwp 项目的流。并将其转换为 PCL 中的ImageSource

例:

接口

public interface IStreamToImage
{
    Task GetStreamFormUWP(Action<Stream> StreamBlock);
}

实现

public async Task GetStreamFormUWP(Action<Stream> StreamBlock)
{ 
    await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => {
       .......
       using (Stream stream = MyBitmap.PixelBuffer.AsStream()){
       await stream.WriteAsync(sourcePixels, 0, sourcePixels.Length);
       StreamBlock(stream);
    }
 });
}

用法

await DependencyService.Get<IStreamToImage>().GetStreamFormUWP( (stream) =>
{          
    image.Source = ImageSource.FromStream(() => stream);
});

最新更新