dotnet 在 Windows 系统上使用 stakx 的 WIC 库

爱谁谁
发布: 2025-09-11 09:17:12
原创
711人浏览过

windows 系统上,windows imaging component(wic)是一个关键的多媒体处理组件,尤其是在处理图片编码、解码和处理方面。wpf(windows presentation foundation)已经很好地封装了 wic 层,使得在 wpf 中使用这些功能变得非常方便。然而,如果你有特殊需求,需要在 wpf 之外通过纯控制台的方式使用 wic 层的逻辑,可以考虑使用 stakx 的 wic 库。但经过探索,发现 wpf 框架仍然是使用 wic 层的最佳封装,即使在控制台应用程序中也可以使用 wpf。

因为我正在探索 WIC 层的各种方法,本文旨在记录一个可用的库,但最终发现 WPF 是最好的封装。无论是否使用 WPF 窗口,只要在 Windows 下,都可以使用 WPF 提供的 WIC 层封装,因为如果你只使用 WIC 层,相当于只是使用 WPF 库封装的方法。

关于 WPF 中封装的底层原理,可以参考 dotnet 读 WPF 源代码笔记,其中 WIC 多媒体图片处理功能是通过 WindowsCodecs.dll 实现的。

在 .NET Framework 中,引用 WPF 不会增加任何额外的输出文件。在 .NET Core 中,除非是独立发布,否则也不会有额外的输出文件。如果是框架依赖发布,额外输出的文件也非常少。因此,使用 WPF 框架几乎没有缺点。与 WPF 框架相比,使用 stakx 的 WIC 库并没有明显的优势。

接下来是关于如何使用 stakx 的 WIC 库的说明。在开始之前,需要通过 NuGet 安装 stakx.WIC 库,这是一个在 GitHub 上完全开源的库,请访问 https://www.php.cn/link/13287c195ee2950c927824118a3a42b3

或者在你的 csproj 文件中添加以下代码:

<ItemGroup>
  <PackageReference Include="stakx.WIC" Version="0.1.0" />
</ItemGroup>
登录后复制

这个库的入口是 WICImagingFactory 接口,这是一个 COM 定义的接口,因此可以使用 new 关键字创建,如下面的代码所示:

LuckyCola工具库
LuckyCola工具库

LuckyCola工具库是您工作学习的智能助手,提供一系列AI驱动的工具,旨在为您的生活带来便利与高效。

LuckyCola工具库 19
查看详情 LuckyCola工具库
WICImagingFactory factory = new WICImagingFactory();
登录后复制

接口可以使用 new 关键字创建,只要标记了这是 COM 接口即可。

这个库的封装都在 WICImagingFactory 的方法中,各个方法的使用方法请参阅官方 WIC 文档。

以下是一些使用示例:

例如,获取本机安装的图片解码器,可以用来判断本机是否有 HEIF 解码器:

static void Main(string[] args)
{
    WICImagingFactory factory = new WICImagingFactory();
    foreach (var wicBitmapEncoderInfo in EnumEncoders(factory))
    {
        Console.WriteLine(wicBitmapEncoderInfo.GetFriendlyName());
    }
    // BMP Encoder
    // GIF Encoder
    // JPEG Encoder
    // PNG Encoder
    // TIFF Encoder
    // WMPhoto Encoder
    // DDS Encoder
    // Microsoft HEIF Encoder
}

static IEnumerable<IWICBitmapEncoderInfo> EnumEncoders(IWICImagingFactory wic)
{
    return wic.CreateComponentEnumerator(WICComponentType.WICEncoder, WICComponentEnumerateOptions.WICComponentEnumerateDefault)
        .AsEnumerable()
        .OfType<IWICBitmapEncoderInfo>();
}
登录后复制

dotnet 在 Windows 系统上使用 stakx 的 WIC 库

以上就是dotnet 在 Windows 系统上使用 stakx 的 WIC 库的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号