首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SkiaSharp图像类转换为WPF图像类

SkiaSharp图像类转换为WPF图像类

原创
作者头像
秦建辉
发布2025-08-02 09:05:17
发布2025-08-02 09:05:17
1240
举报
文章被收录于专栏:WPF编程WPF编程
代码语言:csharp
复制
using SkiaSharp;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace FirstSolver;

/// <summary>
/// SkiaSharp功能扩展类
/// </summary>
public static class SkiaSharpExtensions
{
    /// <summary>
    /// SKImage转换为ImageSource
    /// </summary>
    /// <param name="image">要转换的Skia图像</param>
    /// <returns>转换后的WPF图像</returns>
    public static ImageSource ToImageSource(this SKImage image)
    {
        WriteableBitmap bmp = new(image.Width, image.Height, 96, 96, PixelFormats.Bgra32, null);
        bmp.Lock();
        try
        {
            SKImageInfo info = new(image.Width, image.Height, SKColorType.Bgra8888, SKAlphaType.Premul);
            using SKSurface surface = SKSurface.Create(info, bmp.BackBuffer, bmp.BackBufferStride);
            SKCanvas canvas = surface.Canvas;
            canvas.DrawImage(image, 0, 0);
            canvas.Flush();
            bmp.AddDirtyRect(new Int32Rect(0, 0, image.Width, image.Height));
        }
        finally
        {
            bmp.Unlock();
        }
        bmp.Freeze();
        return bmp;
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档