<Rust><iced>基于rust使用iced构建GUI实例:如何将svg格式转为ico格式图片?

news2024/11/17 16:19:31

前言
本专栏是Rust实例应用。
在这里插入图片描述

环境配置
平台:windows
软件:vscode
语言:rust
库:iced、iced_aw

概述
本文是专栏第4篇实例,依旧是一个图像格式转换程序,基于rust的svg库resvg、图像处理库image以及文件处理库rfd。
流程是先用resvg获取svg图片的数据并将其转为png数据格式,然后利用image库将png数据格式转为ico格式。
系列博客链接
1、<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色
2、<Rust><iced>基于rust使用iced库构建GUI实例:图片的格式转换程序
3、<Rust><iced><resvg>基于rust使用iced构建GUI实例:使用resvg库实现svg转png

本篇内容:
1、svg转icon

程序结构介绍

我们了解到可以使用resvg库来获取svg图片的数据并对其进行转换,我们使用encode_png函数来将获取的svg数据转为png格式数据:

let mut opt=resvg::usvg::Options::default();      
    opt.resources_dir=std::fs::canonicalize(svgpath)
                                 .ok()
                                 .and_then(|p| p.parent().map(|p| p.to_path_buf()));
    opt.fontdb_mut().load_system_fonts();
    let svgdata=std::fs::read(svgpath).unwrap();
    let tree=resvg::usvg::Tree::from_data(&svgdata,&opt).unwrap();
    let pixmap_size = tree.size().to_int_size();
    let mut pixmap = resvg::tiny_skia::Pixmap::new(pixmap_size.width

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1838882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

llama-factory微调chatglm3

一、定义 案例/多卡 二、实现 案例 1. 下载chatglm3-6b-32k模型 2. 配置数据集微调指令 CUDA_VISIBLE_DEVICES0,1 llamafactory-cli train \--stage sft \--do_train True \--model_name_or_path /home/chatglm3-6b-32k \--finetuning_type lora \--template chatglm3 \--d…

零基础入门学用Arduino 第四部分(三)

重要的内容写在前面: 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路…

nodejs爬取小红书图片

昨天的文章已经描述了可以抓取评论区内容, 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接,我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…

STM8单片机的GPIO口介绍

本篇文章依托于stm8单片机和lora模块 目录 一、GPIO口测试相关硬件电路图 (a)USB转串口底板PA3控制LED6 (b)Lora模块底板PA3接口 (c)LED灯电路 二、参考官方例程实现GPIO口的输出 三、GPIO相关函数的了解 (1&a…

docker安装使用

文章目录 docker产生的原因传统虚拟机容器化技术 docker组成安装docker镜像加速docker安装过程中遇到的问题以及解决办法Errors during downloading metadata for repository root_:Failed to set locale, defaulting to C.UTF-8 docker产生的原因 传统虚拟机 在不使用docker…

从“野人饭”走红,探索品牌户外化营销趋势丨小红书内容分析

wildeat,户外是人的天性的回归 近来,“wildeat(户外野吃)”的风潮在小红书逐渐兴起。越来越多的人选择到户外吃一顿,做一次“野人”,主打一个只要氛围到了,就地开饭,不愁吃什么&…

AI智能写作工具, 免费在线智能创作内容网站

对于需要创作内容的同学,选择一款适合自己的AI写作工具可以极大的提高创作效率。下面小编就来和大家分享几款可以生成高质量原创内容的AI写作工具。 1. Kimi智能助手 Kimi智能助手是一款集成了先进算法的AI工具,它能够理解复杂的语言模式,生…

如何用Vue3和ApexCharts打造引人注目的3D径向条形图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 使用 ApexCharts 构建美观的 Vue.js 径向条形图 应用场景 径向条形图是一种用于可视化单一数据点及其与目标或理想值的关系的图表类型。它在显示进度、完成率或其他类似度量时非常有用。 基本功能 这段代码…

划分子网和构造超网的学习

子网掩码长度=32位 某位=1:IP地址中的对应位为网络号和子网号 某位=0:IP地址中的对应位为主机号 从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。 使用子网掩码(subnet mask)可…

EasyCVR/EasyDSS无人机直播技术助力野生动物监测

近日有新闻报道,一名挖掘机师傅在清理河道时,意外挖出一只稀有的扬子鳄,挖机师傅小心翼翼地将其放在一边,扬子鳄也顺势游回一旁的河道中。 随着人类对自然环境的不断探索和开发,野生动物及其栖息地的保护显得愈发重要。…

AI产品组件——TTS产品

语音合成TTS 序列猴子TTS,每个发音人付费标准不同,通过序列猴子开放平台使用。 微软TTS,采用信用卡后付费模式。Speech Studio,付费模式采用统一付费的形式,音效有一款女声效果逼真。 女声:晓晓&#xff…

三天带你快速入门Transformer,真的太牛了

前言 听说Transformer很火?但感觉它好复杂?别担心,三天时间,你也可以轻松入门Transformer! 第一天,我们先来了解Transformer的“骨架”。简单来说,它就像是一个双层机器,上面一层…

mysql5.7windows安装修改密码

mysql5.7windows安装修改密码 1.首先下载Windows 64位安装包2.安装服务3.my.ini4.初始化4.做成Windows服务5.重置密码 1.首先下载Windows 64位安装包 2.安装服务 双击运行安装服务,一直next; 在Choose Setup Type界面中 选择Custom选项,意思…

万界星空科技QMS质量管理介绍

产品的生产质量是企业发展之根本,对所有企业来说,建立完善质量控制体系,对企业生产经营以及发展竞争具有至关重要的影响,可以说是企业质量保证的防火墙。QMS质量管理系统对任何一家企业都具有重要意义,可帮助企业提高生…

nextjs(持续学习中)

return ( <p className{${lusitana.className} text-xl text-gray-800 md:text-3xl md:leading-normal}> Welcome to Acme. This is the example for the{’ } Next.js Learn Course , brought to you by Vercel. ); } 在顶级 /public 文件夹下提供静态资产 **默认 /…

Linux磁盘格式化与重新分区

1.df -BG查看磁盘挂载情况 2.fdisk -l查看磁盘详细信息 3.sudo mkfs.ext4 /path 格式化磁盘 4.挂载格式化后磁盘 挂载成功

《化工设计通讯》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《化工设计通讯》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊 问&#xff1a;《化工设计通讯》级别&#xff1f; 答&#xff1a;省级。主办单位&#xff1a;湖南化工设计院有限公司 主管单位&#xff1…

jeecg spring数据源用户名和密码加密 避免明文安全漏洞

1.目的 由于系统部署在互联网&#xff0c;配置文件中的数据库账号密码使用明文&#xff0c;存在安全隐患&#xff0c;做等保测试时要求对其加密。 2.实现方法 Jeecg框架本身有PasswordUtil可以使用PBEWITHMD5andDES进行加密&#xff0c;这里为方便改造&#xff0c;且安全性较…

andrio复习

第2章 Android常见界面布局 View View与ViewGroup View&#xff1a;按钮&#xff08;Button&#xff09;、文本框&#xff08;TextView&#xff09;和图像视图&#xff08;ImageView&#xff09;等 ViewGroup&#xff1a;LinearLayout、RelativeLayout、FrameLayout等都是Vi…

智慧校园综合解决方案:提供全方位的学校管理支持

在当今数字化时代&#xff0c;学校管理面临着越来越多的挑战&#xff0c;包括学生管理、教职员工管理、校园安全等。为了应对这些挑战&#xff0c;智慧校园综合解决方案应运而生。智慧校园综合解决方案融入了先进的信息技术&#xff0c;为学校带来了一场管理与教育模式的革新。…