登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
3
/ 3 页
下一页
返回列表
首页
›
业界区
›
业界
›
一次小而美的重构:使用 C# 在 Avalonia 中生成真正好看 ...
一次小而美的重构:使用 C# 在 Avalonia 中生成真正好看的词云
[ 复制链接 ]
威割
2025-6-2 22:10:19
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
前言
我之前不是用 Avalonia 开发了
StarBlogPublisher
(一款为 StarBlog 设计的 Markdown 文章发布工具)吗?
当时里面有个分类
词云(Word Cloud)
展示功能。
初版的词云虽然 "能用",但效果极其粗糙——基本只是简单堆叠文字,完全没有体现出词云那种灵动、密集、错落有致的美感。
于是,我决定
彻底重构
这一模块,重新寻找合适的词云生成方案。
选型
在 Avalonia 生态中是没有直接可用的词云组件的。
不过没事,C# 的生态还算丰富,基本要啥有啥,词云自然不在话下。
在调研阶段,我找到了两个比较流行的 C# 词云库:
Sdcb.WordCloud
KnowledgePicker/WordCloud
简单对比一下:
特性Sdcb.WordCloudKnowledgePicker.WordCloud渲染引擎SkiaSharp(跨平台)SkiaSharp(跨平台)输出格式图片(PNG)、SVG、JSON图片(Bitmap)、SVG(需要自绘)自定义程度高(遮罩、字体、多方向、JSON输出等)中(字体、颜色、布局可定制,但不支持遮罩)遮罩功能✅ 原生支持遮罩图生成特定形状词云❌ 暂不支持遮罩,生成规则矩形词云最近维护状态活跃(2024年持续更新)活跃(2024年有提交)使用复杂度中(配置多、自由度高)中(较简洁,适合快速集成)
共同点
两者都使用 SkiaSharp,意味着可以在
Windows、Linux、macOS
等多平台运行。
都支持灵活配置字体、布局、颜色,并且速度非常快。
主要区别
Sdcb.WordCloud
更注重视觉效果(支持复杂遮罩图案),适合追求自定义形状、炫酷效果的场景。
KnowledgePicker.WordCloud
更注重性能和简洁性,适合标准矩形词云生成,不追求复杂形状。
最终,我选择了功能更强大、兼容性更好的
Sdcb.WordCloud
。
Sdcb.WordCloud简介
Sdcb.WordCloud
是一个基于 SkiaSharp 的跨平台词云生成库,具备以下特点:
跨平台兼容
:Windows、Linux、macOS 均可使用。
多种输出
:支持生成图片、SVG文件或JSON数据。
高度可定制
:自定义字体、颜色、遮罩图案、文本排列方式等。
无依赖System.Drawing
:在服务器环境也能轻松部署。
开源友好
:MIT License,开发者自由扩展。
安装
dotnet add package Sdcb.WordCloud
复制代码
实战:在 StarBlogPublisher 中应用
重构后的词云生成逻辑主要分为两步:
获取词频数据
首先,从后端API请求分类词频数据,并进行简单扩充(让词云密度更高)。
private async Task<List<WordScore>?> GetWordScores() {
var response = await ApiService.Instance.Categories.GetWordCloud();
if (response.Data == null) throw new Exception("获取词云数据失败");
var originalScores = response.Data
.Select(e => new WordScore(Score: e.Value, Word: e.Name))
.ToList();
var extendedScores = new List<WordScore>();
foreach (var score in originalScores) {
for (int i = 0; i < 10; i++) {
extendedScores.Add(score);
}
}
return extendedScores;
}
复制代码
这里小技巧:
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
一次
小而
美的
重构
使用
相关帖子
记一次综合型流量分析 | 添柴不加火
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
k8s~secret资源的使用
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
使用 OpenSpec + 提示词工程 + Harness 思维,构建一站式多 Agent 研发流程
使用fetchEventSource构建高效AI智能助手:文件搜索场景的完整实现与深度解析
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
记一次综合型流量分析 | 添柴不加火
0
427
沃盼盼
2026-03-27
业界
使用Alpine配置WSL ssh门户
0
1010
郁梓馨
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
176
瞧厨
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
349
任俊慧
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
522
士沌
2026-03-30
安全
k8s~secret资源的使用
0
856
齐娅晶
2026-03-31
业界
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
0
108
损注
2026-03-31
业界
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
0
159
金娅鸣
2026-03-31
业界
使用 OpenSpec + 提示词工程 + Harness 思维,构建一站式多 Agent 研发流程
0
497
啦迩
2026-03-31
业界
使用fetchEventSource构建高效AI智能助手:文件搜索场景的完整实现与深度解析
0
117
胁冉右
2026-04-01
回复
(42)
阜逐忍
2025-11-26 17:42:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
康器
2025-12-7 00:53:52
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
佟棠华
2025-12-7 10:36:26
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
洪势
2025-12-8 00:57:15
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
曲愍糙
2025-12-11 18:06:59
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
毋献仪
2025-12-15 20:30:48
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
阮蓄
2026-1-3 07:02:46
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
羔迪
2026-1-5 15:31:35
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
山芷兰
2026-1-8 04:31:14
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
颖顿庐
2026-1-9 19:30:17
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
釉她
2026-1-14 03:35:38
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
yyds。多谢分享
旱由
2026-1-14 07:28:56
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
公西颖初
2026-1-17 06:16:23
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
东西不错很实用谢谢分享
胁冉右
2026-1-18 23:21:19
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,辛苦了
玲液
2026-1-19 11:28:13
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
蔬陶
2026-1-23 04:37:00
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
嗳诿
2026-1-23 06:35:33
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
赏勿
2026-1-24 10:15:32
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢发布原创作品,程序园因你更精彩
劳暄美
2026-2-2 03:20:55
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
热心回复!
下一页 »
1
2
3
/ 3 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
威割
2026-2-2 03:20:55
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9537
6
宋子
9880
7
韶又彤
9911
8
荪俗
9023
9
诀锺
9036
10
注思
9030
查看更多
今日好文热榜
167
团队 Git 开发协作规范指引
905
Claude Code 系统提示词大公开
678
MVC快速入门
918
.NET 高级开发 | 日志系统使用技巧
792
《DNESP32P4开发指南_V1.0》第十三章 EXIT
992
Anthropic 翻车了:51万行代码泄露,AI 巨
80
Anthropic 翻车了:51万行代码泄露,AI 巨
38
MVC快速入门
170
MVC快速入门
946
MVC快速入门
303
MVC快速入门
116
使用fetchEventSource构建高效AI智能助手:
445
提升linux实时性的两种方案
340
Ubuntu 部署Harbor
256
Typora 中设置图像上传到博客园中
66
pg_auto_failover 高可用中,PostgreSQL实
515
Typora 中设置图像上传到博客园中
656
pg_auto_failover 高可用中,PostgreSQL实
891
提升linux实时性的两种方案
108
Typora 中设置图像上传到博客园中