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

前言
本专栏是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.mzph.cn/news/855464.shtml

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

相关文章

20.Dcoker跨宿主机容器通信之overlay

Dcoker跨宿主机容器通信之overlay http://www.cnblogs.com/CloudMan6/p/7270551.html 环境准备,三台机器,主机名为docker01(192.168.111.11)、docker02(192.168.111.12)、docker03(192.168.111…

电子竞赛5——作息时间控制器

一 . 题目要求 用单片机制作作息时间控制器;用四位数码管显示实时时钟(时、分,24小时制、12小时制),有秒闪,小时十位有零消隐;可用数字键或、-键校时(可快速、-)被校位&…

【ARMv8/ARMv9 硬件加速系列 4 -- 加解密 Cryptographic Extension 介绍】

文章目录 ARMv8.0 Cryptographic ExtensionFEAT_AESFEAT_PMULLFEAT_SHA1FEAT_SHA256ARMv8.2 扩展FEAT_SHA512FEAT_SHA3FEAT_SM3FEAT_SM4ARMv8.0 Cryptographic Extension ARMv8.0引入了加密扩展(Cryptographic Extension),旨在加速加密和解密操作。这一扩展通过新增专用指令…

C++代码编写风格:Header-Only与声明实现分离的选择

C代码编写风格:Header-Only与声明实现分离的选择 最近看到一些小伙伴问到了几个比较有趣的问题,这里总结一下,这些都是实际面试中出现过的问题,看看你知道多少,考察一下底子。 面试问题1:你通常编写代码的风…

JAVA云HIS医院管理系统源码 云HIS系统的应用场景

JAVA云HIS医院管理系统源码 云HIS系统的应用场景 云HIS是针对中小医疗健康机构推出的一套基于云端的诊所云HIS服务平台,包括内部管理系统、临床辅助决策系统、体检系统、客户管理与服务系统、健康管理系统、知识管理系统、医患沟通系统、线上营销系统、其他外部系…

降价潮背后:中国产业大模型落地的卡点到底在哪?

“技术是不会以任何商业行为或者人们的意愿所改变它的上限和下限的,它需要的时间是恒定的。” 如果说中国大模型市场最核心的话题是什么?降价则必然是其中之一。 从目前的参赛玩家来看,不论是字节豆包,还是阿里、百度、腾讯、科…

Linux系统之mtr命令的基本使用

Linux系统之mtr命令的基本使用 一、mtr命令介绍二、mtr命令使用帮助2.1 mtr命令的帮助信息2.2 mtr帮助信息解释 三、安装mtr工具四、mtr命令的基本使用4.1 直接使用4.2 设定ping次数4.3 禁用DNS解析4.4 显示IP地址4.5 调整间隔 五、总结 一、mtr命令介绍 mtr命令是一个网络诊断…

Multisim软件仿真之频谱分析仪

网络上有很多Multisim文件,有些是不能复现的,比如频谱仪,按照下面链接去操作,怎么也测试不出来波形,multisim频谱仪使用_multisim输入输出端口-CSDN博客。 原因分析: 1、博主设置参数未讲全,按…

【GUI软件】小红书蒲公英数据批量采集!高效筛选优质博主,助力品牌商

文章目录 一、背景介绍1.0 爬取目标1.1 演示视频1.2 软件说明 二、代码讲解2.0 关于接口2.1 爬虫采集模块2.2 cookie获取2.3 软件界面模块2.4 日志模块 三、获取采集软件 一、背景介绍 1.0 爬取目标 众所周知,蒲公英是小红书推出的优质创作者商业合作服务平台&…

海思SS928/SD3403开发笔记1——使用串口调试开发板

该板子使用串口可以调试,下面是win11 调试 该板子步骤 1、给板子接入鼠标、键盘、usb转串口 2、下载SecureCRT,并科学使用 下载地址: 链接:https://pan.baidu.com/s/11dIkZVstvHQUhE8uS1YO0Q 提取码:vinv 3、安装c…

2024最新宝塔面板8.1.0企业版开心版

官方更新记录 【增加】增加【网站】-【HTML项目】 【优化】优化Docker模块使用体验 【优化】优化文件压缩和解压的速度 【修复】修复在上一版本中出现的所有已知问题 开心版更新记录 1.在 PHP切换页面,出现报错弹窗属于正常情况,是因爲没安装 企业…

【C语言】解决C语言报错:Undefined Reference

文章目录 简介什么是Undefined ReferenceUndefined Reference的常见原因如何检测和调试Undefined Reference解决Undefined Reference的最佳实践详细实例解析示例1:缺少函数定义示例2:函数声明和定义不匹配示例3:未链接必要的库示例4&#xff…

Linux驱动开发(一)--字符设备驱动开发基础

1、字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节 流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI, LCD 等等都是字符设备&#xff0c…

【自动驾驶技术】自动驾驶汽车AI芯片汇总——TESLA篇(FSD介绍)

0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。 本篇文章是这个自动驾驶汽车AI芯片系…

ObTypeIndexTable 在win7x86 和win10x64对比

当作备忘录,其他概念请自行搜索 对象类型和对象结构体类型 win7 x86win10 x64 寻找_object_type结构的地址 过程不一样,但是总归是在全局变量_ObTypeIndexTable数组中寻找 win7 的寻找过程

基于稀疏学习现代信号处理方法的旋转机械故障诊断(MATLAB)

通过对滚动轴承故障诊断研究现状及稀疏表示方法在滚动轴承故障诊断领域中应用现状的调研,发现稀疏表示方法与故障特征提取和故障分类的关联,针对故障诊断问题,通过构造合理的故障稀疏表示模型,选取适合的模型优化算法,…

Pycharm的基础使用

Pycharm的基础使用 一、修改主题 第一步:点击file->settings 第二步:找到Appearance&Behavior->Appearance->Theme选择主题 有五种主题可以选 二、修改默认字体和大小 第一步:打开设置与上面修改主题第一步一样&#xff1b…

C# 索引器与迭代器分部类详情

文章目录 一、迭代器二、查看Foreach执行中间语言三、foreach实现过程总结四、实现迭代器最常用的方法五、分布类概述及其使用六、索引器概述及声明七、索引器在类中的使用八、索引器在接口中的使用九、总结 一、迭代器 1、迭代器(iterator)解决的是集合…

零信任是对抗AI威胁的“解药”

人工智能的变革力量正在重塑众多行业的业务运营。通过机器人流程自动化(RPA),人工智能正在将人力资源从重复的、基于规则的任务中解放出来,并将其重点放在战略性的、复杂的操作上。此外,人工智能和机器学习算法可以以前…

数据库 |试卷1试卷2

1.数据库语言四大语句 4.四大类(DDL、DML、DQL、DCL)_中度ddl-CSDN博客 数据定义(data defination language) 查询、创建、删除、使用 #查询所有数据库 show databases;#查询当前数据库 select database();#创建数据库 create …