Xamarin:从本地文件(不是资源)导入 SKBitmap
Xamarin: import SKBitmap from local file (not Resource)
我是 Xamarin 的新手,所以我希望我问的不是愚蠢的东西。
我想将本地图像导入为 SKBitmap
(SkiaSharp 位图)。
如果我尝试使用简单的解码方法,例如
var skBitmap= SKBitmap.Decode("myImg.jpg");
我的 skBitmap 是空的。
我可以使用
加载图像
var myImg = ImageSource.FromFile("myImg.jpg");
但是如何将 ImageSourse
转换为 SKBitmap
?
有什么建议吗?
谢谢
无论是将图片文件放到外部文件路径,还是将图片放到 xamarin forms 项目中,如下图所示。他们两个你都需要阅读 standard .NET stream
的图像
例如。我把图片放在上面的路径中。
这是我的 layout.xaml
<skia:SKCanvasView x:Name="hsvCanvasView" WidthRequest="200" HeightRequest="200"/>
我想将此图片设置为 SKCanvasView
。这是后台代码
public partial class ItemsPage : ContentPage
{
ItemsViewModel viewModel;
public ItemsPage()
{
InitializeComponent();
hsvCanvasView.PaintSurface += HsvCanvasView_PaintSurface;
}
private void HsvCanvasView_PaintSurface(object sender, SkiaSharp.Views.Forms.SKPaintSurfaceEventArgs args)
{
SKImageInfo info = args.Info;
SKSurface surface = args.Surface;
SKCanvas canvas = surface.Canvas;
canvas.Clear();
string resourceID = "App23.faded_div.jpg";
Assembly assembly = GetType().GetTypeInfo().Assembly;
SKBitmap bitmap;
using (Stream stream = assembly.GetManifestResourceStream(resourceID))
{
bitmap = SKBitmap.Decode(stream);
}
canvas.DrawBitmap(bitmap,200,200);
}
这是运行截图。
这里有一篇很有帮助的文章,你可以参考一下。
我是 Xamarin 的新手,所以我希望我问的不是愚蠢的东西。
我想将本地图像导入为 SKBitmap
(SkiaSharp 位图)。
如果我尝试使用简单的解码方法,例如
var skBitmap= SKBitmap.Decode("myImg.jpg");
我的 skBitmap 是空的。
我可以使用
加载图像var myImg = ImageSource.FromFile("myImg.jpg");
但是如何将 ImageSourse
转换为 SKBitmap
?
有什么建议吗? 谢谢
无论是将图片文件放到外部文件路径,还是将图片放到 xamarin forms 项目中,如下图所示。他们两个你都需要阅读 standard .NET stream
的图像
例如。我把图片放在上面的路径中。
这是我的 layout.xaml
<skia:SKCanvasView x:Name="hsvCanvasView" WidthRequest="200" HeightRequest="200"/>
我想将此图片设置为 SKCanvasView
。这是后台代码
public partial class ItemsPage : ContentPage
{
ItemsViewModel viewModel;
public ItemsPage()
{
InitializeComponent();
hsvCanvasView.PaintSurface += HsvCanvasView_PaintSurface;
}
private void HsvCanvasView_PaintSurface(object sender, SkiaSharp.Views.Forms.SKPaintSurfaceEventArgs args)
{
SKImageInfo info = args.Info;
SKSurface surface = args.Surface;
SKCanvas canvas = surface.Canvas;
canvas.Clear();
string resourceID = "App23.faded_div.jpg";
Assembly assembly = GetType().GetTypeInfo().Assembly;
SKBitmap bitmap;
using (Stream stream = assembly.GetManifestResourceStream(resourceID))
{
bitmap = SKBitmap.Decode(stream);
}
canvas.DrawBitmap(bitmap,200,200);
}
这是运行截图。
这里有一篇很有帮助的文章,你可以参考一下。