【问题标题】:Xamarin: import SKBitmap from local file (not Resource)Xamarin:从本地文件(不是资源)导入 SKBitmap
【发布时间】:2020-06-02 01:49:54
【问题描述】:

我是 Xamarin 的新手,所以我希望我没有问一些愚蠢的问题。

我想将本地图像导入为SKBitmap(SkiaSharp 位图)。

如果我尝试使用简单的解码方法,比如

var skBitmap= SKBitmap.Decode("myImg.jpg");

我的 skBitmap 为空。

我可以使用

加载图像
var myImg = ImageSource.FromFile("myImg.jpg");

但是如何将ImageSourse 转换为SKBitmap

有什么建议吗? 谢谢

【问题讨论】:

    标签: c# xamarin skiasharp


    【解决方案1】:

    无论您将图像文件放到外部文件路径还是将图像放到 xamarin 表单项目中,如下图所示。他们两个都需要通过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);
            }
    

    这是运行截图。

    这是一篇有用的文章,你可以参考一下。

    https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/basics/bitmaps

    【讨论】:

    • 如果回复有帮助,请不要忘记采纳为答案(点击此答案左上角),对有类似问题的其他人会有所帮助
    猜你喜欢
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    相关资源
    最近更新 更多