【发布时间】:2018-04-03 14:32:39
【问题描述】:
有没有办法将 UWP WriteableBitmap 转换为 XamarinForms 图像?尝试简单的转换以“无法将类型 WriteableBitmap 隐式转换为 Xamarin Forms Image”而告终。
我必须先将其转换为 base64 字符串吗?或者你会怎么处理?
谢谢
【问题讨论】:
标签: image xamarin.forms uwp
有没有办法将 UWP WriteableBitmap 转换为 XamarinForms 图像?尝试简单的转换以“无法将类型 WriteableBitmap 隐式转换为 Xamarin Forms Image”而告终。
我必须先将其转换为 base64 字符串吗?或者你会怎么处理?
谢谢
【问题讨论】:
标签: image xamarin.forms uwp
您可以在Xamarin.Forms.ImageSource 中找到FromStream 方法。根据您的要求,您可以通过DependencyService 获取来自 uwp 项目的WriteableBitmap 流。并将其转换为 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);
});
【讨论】:
Stream str = bm.PixelBuffer.AsStream(); var ms = new MemoryStream(); str.CopyTo(ms); 然后:Xamarin.Forms.ImageSource.FromStream(ms); 但 Xamarin Forms 图像将始终为空。
PropertyChanged 没有调用。这可能是一个错误。