ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PixiEditor 部署与实战:源码构建与扩展开发完整指南

PixiEditor 部署与实战:源码构建与扩展开发完整指南 PixiEditor 部署与实战源码构建与扩展开发完整指南【免费下载链接】PixiEditorPixiEditor is a Universal Editor for all your 2D needs项目地址: https://gitcode.com/GitHub_Trending/pi/PixiEditorPixiEditor 是一个基于 .NET 8 和 Avalonia 构建的跨平台 2D 编辑器支持像素画、绘画、矢量绘制在同一画布混用可导入/导出 PNG、JPG、SVG、GIF、MP4 等格式。本文带你从源码编译启动桌面应用到跑通文件导入导出再到写出第一个可加载的扩展插件。关键信息速览运行时.NET 8SDK 版本 8.0.405允许rollForward latestMinor向上滚动UI 框架Avalonia 11.3开源跨平台 UI 框架支持平台Windows / Linux / macOSx64 与 arm64原生文件格式.pixi由 PixiParser 解析动画导出 MP4 依赖 FFmpeg扩展包格式.pixiext含extension.json的 zip 包 获取源码并安装依赖执行以下命令克隆仓库并确认本机装有 .NET 8 SDKgit clone https://gitcode.com/GitHub_Trending/pi/PixiEditor cd PixiEditor dotnet --list-sdks根目录 src/global.json 指定 SDK 版本为 8.0.405 且rollForward为latestMinor即安装任意 8.0.x 中不低于该版本的 SDK 均可直接构建。无需额外依赖安装NuGet 包会在首次构建时自动还原。▶️ 首次编译并启动桌面应用入口项目是 src/PixiEditor.Desktop/Program.cs执行以下命令直接构建并运行dotnet run --project src/PixiEditor.Desktop若只想构建整个解决方案使用dotnet build src/PixiEditor.sln。渲染管线默认优先 Vulkan失败时回退 OpenGLWindows 走 WGLLinux 走 GLX。如果你没有可用的 Vulkan 驱动启动时追加--opengl参数即可让 OpenGL 成为首选dotnet run --project src/PixiEditor.Desktop -- --opengl️ 编辑器内导入与导出文件启动后按常规流程新建或打开文档.pixi是原生工程格式由 src/PixiParser/ 解析位图可直接打开 PNG、JPG、GIF矢量走 SVG 导入。导出时按目标格式选择静态图支持 PNG、JPG、SVG逐帧动画支持 GIF视频导出 MP4。视频导出由 src/PixiEditor.AnimationRenderer.FFmpeg/FFMpegRenderer.cs 驱动各平台所需的 ffmpeg 二进制已随项目分发许可证见 Third Party Licenses/无需你手动安装。 构建并加载你的第一个扩展仓库 samples/ 目录提供 12 个可直接参考的示例从Sample1_HelloWorld到调色板、资源加载、命令注册。以 HelloWorld 为例核心代码只有一个类重写OnInitialized后即可通过Api属性访问宿主接口using PixiEditor.Extensions.Sdk; namespace HelloWorld; public class HelloWorldExtension : PixiEditorExtension { public override void OnLoaded() { } public override void OnInitialized() { Api.Logger.Log(Hello World!); } }配套的 extension.json 必须包含uniqueName、displayName、version三个字段。构建该示例项目目标框架net8.0wasi-wasm会自动生成.pixiext包输出到src/PixiEditor.Desktop/bin/Debug/net8.0/Extensions目录宿主启动时 ExtensionLoader 会扫描该目录下所有*.pixiext并解压加载dotnet build samples/Sample1_HelloWorld想让扩展出现在菜单里参考 Sample8_Commands注册命令时通过CommandMetadata指定MenuItemPath与快捷键宿主就会把命令挂到对应菜单CommandMetadata cmd new(MyExt.SayHello); cmd.DisplayName Say Hello; cmd.MenuItemPath EDIT/Say Hello; // 挂载到 EDIT 菜单 cmd.Shortcut new Shortcut(Key.H, KeyModifiers.Control | KeyModifiers.Alt); Api.Commands.RegisterCommand(cmd, () Api.Logger.Log(Hello!));扩展的多语言文本放在项目Localization文件夹下的 JSON 文件中构建时复制到输出目录即可被自动加载无需额外注册。⚙️ 进阶配置渲染偏好、本地化与测试渲染偏好可持久化--opengl参数之外RenderApiPreferenceManager 还会读取配置中存储的opengl设置一次设置后无需每次传参。宿主内置 18 份语言文件位于 src/PixiEditor/Data/Localization/扩展侧复用同样的 JSON 结构。回归测试独立成 tests/PixiEditorTests.sln覆盖像素运算ChunkyImageLib、SVG 解析渲染、序列化等模块修改底层逻辑后建议执行dotnet test tests/PixiEditorTests.sln验证。 常见报错排查Q: 构建时报 The current .NET SDK does not support targeting .NETCoreApp,Versionv8.0 A: 定位到本机 SDK 版本过低或未安装 .NET 8。安装 8.0.405 或更高小版本的 SDK 后重试global.json允许latestMinor滚动无需精确匹配。Q: Linux 下启动闪退或黑屏日志出现 Vulkan/GLX 相关错误 A: 默认渲染顺序是 Vulkan 优先、GLX 回退。无可用 Vulkan 驱动时用--opengl参数启动让 OpenGL 成为首选或在设置中持久化该偏好。Q:.pixiext已放进 Extensions 目录但扩展没有加载 A: 检查三点文件是 zip 且根目录含extension.jsonuniqueName、displayName、version字段齐全缺一即校验失败被跳过compatibleHostVersions与当前宿主版本不兼容也会被拒绝。Debug 配置下加载器会直接抛出异常便于定位。Q: 扩展加载成功日志正常但菜单里找不到命令 A:CommandMetadata未设置MenuItemPath时不会生成菜单项另外检查命令唯一 ID 是否与其他扩展冲突。Q: 无图形界面的服务器上执行dotnet run报 Avalonia 显示相关异常 A: 桌面应用依赖显示服务器无法在无头环境运行。请在有图形界面的机器上运行或将项目指向无头测试入口tests/PixiEditor.Tests/AvaloniaTestRunner.cs的验证方式。完整贡献流程见 CONTRIBUTING.md源码细节以仓库内各项目注释为准。【免费下载链接】PixiEditorPixiEditor is a Universal Editor for all your 2D needs项目地址: https://gitcode.com/GitHub_Trending/pi/PixiEditor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表