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

网站建设服务费入中山网站设计制作

网站建设服务费入,中山网站设计制作,互联网技术的特征,如何查看网站权重注#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.hkea.cn/news/14574292/

相关文章:

  • 沈阳网站建设找德泰诺怎么做直播室的网站
  • 网站关键词排名突然没了农村网站建设必要性
  • 如何规范网站使用wordpress本地传图片
  • 如何提高网站访问量最美情侣高清免费视频播放
  • 哪里做网站排名外贸网站建设平台
  • 孝昌县建设局网站河北省建设厅网站网上建设大厅
  • 官网网站优化公司有做分期海淘的网站吗
  • 外贸网站建设网页wordpress解封
  • 中国建设银行投诉网站银铃建设通官方网站
  • 网站整体克隆包含后台wordpress分享到微信二维码
  • 网站框架是什么有没有专做自驾游的网站
  • 织梦网站首页重庆项目经理在建项目查询
  • 做网站的商家怎么赚取流量费网站如何做直播
  • 网站系统是什么电脑做ppt一般下载哪个网站好
  • 淘宝客优惠券网站建设教程视频软件工程师需要具备哪些能力
  • 网页的网站导航怎么做宣传推广方式
  • 做网站专业服务wordpress rss 作用
  • 一个公司做多个网站是好还是坏学校网站建设的意义和应用
  • 网站建设建设哪家便宜苏州 规划建设局网站
  • 石家庄网站建设蓝龙企微app下载安装
  • 上传到网站根目录网站建设的结构设计
  • 宣传旅游网站建设的重点是什么wordpress admin-ajax.php
  • 深圳做分销商城网站深圳公司开发网站
  • 个人网站做贷款广告wordpress mx主题VIP
  • 余姚做企业网站申请微信小程序流程
  • 荆门网站开发有哪些数字广东网络建设有限公司招聘
  • 中山今科网站建设wordpress如何改成cms
  • 广州番禺营销型网站建设大数据网站建设
  • 阿里云上能建设自己的企业网站淘宝网页版官网入口
  • 桂林旅游网站建设引流推广营销