当前位置: 首页 > news >正文

网站添加模块网站开发公司的生产

网站添加模块,网站开发公司的生产,搜索引擎优化的基本手段,wordpress 全文检索注#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库#xff0c;用于为rust语言程序构建UI界面。 想要了解如何构建简单窗口的可以看本系列的第一篇#xff1a; Rust UI开发#xff1a;使用iced构建UI时#xff0c;如何在界面显示中文字符 本篇是系…注此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库用于为rust语言程序构建UI界面。 想要了解如何构建简单窗口的可以看本系列的第一篇 Rust UI开发使用iced构建UI时如何在界面显示中文字符 本篇是系列第二篇主要解决一个问题就是为窗口添加图标icon。 注窗口图标在其他语言中应该是非常容易实现的但iced是一个发展中的库很多方面还不成熟我在用iced自己的方法测试window图标花了很多时间效果还不好所以特意记录此篇一来做个记录方便以后回看二来给其他有这方面问题的朋友做个参考。 我们先来看一下iced中对于窗口参数设置里icon的定义 /// The icon of the window. pub icon: OptionIcon,icon参数是一个枚举枚举类型是Icon。 再去看Icon的定义 /// An window icon normally used for the titlebar or taskbar. #[derive(Debug, Clone)] pub struct Icon {rgba: Vecu8,size: Sizeu32, }可以看到这里Icon的数据是rgba数据是一种图像的数据类型。 rgba是rgb的基础上另外增加了一个a阿尔法通道表示透明度信息。 也就是说rgb是[u8,u8,u8],而rgba是[u8,u8,u8,u8]。这里u8指2的8次方即256种颜色值0-255。 总的来说你只要知道在这里Icon是{rgbasize}组合的数据形式。 所以如果我们要设置这个icon图标我们知道图片应该是rgba格式的且设置一个尺寸如4848,6464,类似这种。 先看图像的格式通常如果读取一张图片数据应该是rgb所以需要转换。 看下面的代码 let img_byteinclude_bytes!(img3.jpg); //println!(this is:{:?},img_byte);let icoicon::from_rgba(img_byte.to_owned().into(), 32, 29);let ico_filematch ico{Ok(file)file,Err(error)panic!(error is {},error),};这段代码是利用include_bytes方法将图像的像素转为一个字节数组。 然后调用iced::window::icon的from_rgba函数这个函数就是构建一个Icon对象以rgba的形式从其他色彩类型转化。 他返回的是一个Result数据所以需要进行错误处理然后利用Someico_file返回枚举类型的数据格式即 Option。 icon:Some(ico_file) 这个方法是可行的我在测试中可以正常启动窗口并显示图片但是有些问题首先就是对图片有要求在测试中遇到两个问题 一是图片包含像素长度不对编译器提示无法被4整除也就是不能分成rgba四个通道所以会报错。 二是加入图片像素长度可以了但你的尺寸size设置有问题举例说明图片像素字节加起来是120个除以4就是30但你的尺寸设置为3232这就不行如果把尺寸修改为56就可以了。 关于上面这个方法首先它是能够实现在窗口上加载图标的但是目前我还没有搞清楚图片的像素数据就要是怎么匹配的导致我在测试中发现虽然能显示图片但图片显然和原始图片的图案对不上也就是像素可能错位了。 第二个方法 所以我建议使用第二个方法第二个方法是使用第三方库来处理图片得到一个完整的rgba图片数据。 这里会用到image库github地址 https://github.com/image-rs/image/tree/master 要使用这个库需要在cargo.toml文件里添加依赖 image* num-complex*也可以指定版本号。 然后导入 extern crate image; extern crate num_complex;来看代码 //第二种获取rgba图片的方法利用Image库let img2image::open(../iced_test/src/img3.jpg); let img2_pathmatch img2 {Ok(path)path,Err(error)panic!(error is {},error),};let img2_fileimg2_path.to_rgba8();let ico2icon::from_rgba(img2_file.to_vec(), 64, 64);let ico2_filematch ico2{Ok(file)file,Err(error)panic!(error is {},error),};这里有个注意的地方就是image库的open函数打开图像文件其参数是图片的路径但是必须是 “…/iced_test/src/img3.jpg” 这种形式如果你写成 “.iced_test/src/img3.jpg” 或者 “img3.jpg” image好像会识别错误它识别的相对路径必须在前面加上: …/ image::open函数返回的是一个Result数据 ResultDynamicImage, ImageError 我们利用match返回DynamicImage数据这个DynamicImage是image的一个枚举数据它拥有转换的功能我们使用to_rgba8()函数返回一个rgbaImage数据rgbaIMage包含 ImageBufferRgba, Vec 得到ImageBuffer可以看到里面包含rgba我们使用 to_vec()转为适合的格式这样ico2就得到想要的rgba格式的Icon了但ico2还是一个result。我们用match取出Icon即可。 let ico2icon::from_rgba(img2_file.to_vec(), 64, 64); let ico2_filematch ico2{ Ok(file)file,Err(error)panic!(error is {},error),};然后window的Settings中 icon:Some(ico2_file)这样就可以了看一下实际窗口效果 图标图片 实际窗口 可以看到窗口的icon图标正常显示了。
http://www.pierceye.com/news/810786/

相关文章:

  • 做网站美工排版提升学历英语翻译
  • 旅游网站建设服务对象微信第三方做网站需要费用吗
  • 能下载的网站soap公司网站
  • 肇庆网站推广排名花都网页设计
  • 网站后台素材wordpress适用linux
  • 开发一个app大概需要多少钱seo按照搜索引擎的什么对网站
  • 比较好的网站建设公司电话珠海开发网站公司
  • 响应式网站怎么做无缝轮播图网站域名在哪里
  • 大连网站建设设计公司哪家好临海市城乡建设规划局网站
  • 福州商城网站建设网站建设的域名和空间价位
  • 如何做外卖网站网页设计照片
  • 长沙河西做网站自己做的网站怎么设置文件下载
  • 计算机本科论文 网站建设wordpress如何添加关键词和描述
  • div嵌套影响网站收录唐山做网站多少钱
  • 做网站挂谷歌广告赚钱吗windows优化大师自动安装
  • 网站下一步工作怎么做网上最好购物网站
  • OA 公司网站 铁道建设报自驾游网站建设
  • wordpress建站网站根目录短视频怎么赚钱
  • 亳州网站开发公司wordpress 添加分享
  • 如何查询网站接入信息移动网站开发框架
  • 河南做网站的百度竞价推广收费标准
  • 深圳的深圳的网站建设公司校园网站建设方向
  • 电商网站建设 解决方案的设计营销策略都有哪些方面
  • 菏泽网站建设兼职凡科网制作网站教程
  • 实验一 电子商务网站建设与维护北京网站设计培训学校
  • 周到的网站建设合肥建筑网站大全
  • 国外互联网资讯网站南宁网站制作费用
  • 建设公司网站要注意哪些蜜雪冰城推广软文
  • 做信息安全的网站博客网站的建设
  • 门户网站建设项目书提升学历是什么意思