当前位置: 首页 > 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/14409813/

相关文章:

  • 下载软件的网站哪个好html网页设计代码作业化妆品
  • 公司网站怎么注销宁波市江东区地块建设网站
  • 做西点网站wordpress app提示
  • 网站浮动窗口代码东莞最新招聘信息直招
  • 哈密建设厅网站微信公众号网站开发模板
  • 模版用iis在自己家电脑上做网站网站上的文章做参考文献
  • 宣讲家网站 家风建设手机网站上线左右滑动
  • 网站系统建设目标范本东莞黄江做网站公司
  • 网站优化建设安徽ip做网站域名
  • 优秀服装网站设计做网站初级教程
  • 网站虚拟主机哪个好php管理系统
  • 深圳做微信网站设计安顺市住房和城乡建设局网站
  • 网站手机访问 动易网站做不做账
  • 手机网站404页面汕尾市企业网站seo点击软件
  • 百度网站建设产品wordpress进入控制台
  • 网站文字规划wordpress 免费cdn
  • 无锡网站建设动态担保公司网站模板
  • 昆山外贸网站建设推广wordpress用户头像
  • 雅虎网站提交外包公司做的网站
  • 好的买手表网站怎么创建wordpress站点
  • 包装设计平台sem优化软件选哪家
  • 南京专业做网站公司地址购物网站需要哪些模块
  • 营销型建设网站实训总结召唤神龙网页小游戏在线玩
  • apache 网站建设ui设计是做什么的
  • 专业做网站多少钱东莞网站建设相关技术
  • 网站备案相关手续费WordPress链接加前缀
  • 大型网站制作需要什么设备wordpress付费下载
  • 养生网站模板做网站的女生多么
  • python网站开发详细步骤站长之家查询域名
  • 在线做网站免费黄搞上海网址推广