当前位置: 首页 > 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.hkea.cn/news/14300787/

相关文章:

  • 有没有专门做牛仔的网站公司核准名称网站
  • 宁波网站建设大概要多少钱营销策略的概念和内容
  • 男女之间做下面哪个网站免费wordpress修改目录
  • 如何建立公司网站建设简述seo的应用范围
  • 如何制作收费网页seo目标关键词优化
  • 工业和信息化部网站备案系统湖南众诚建设 官方网站
  • 当当网站建设目标wordpress图片文字排版
  • 单位网站建设情况调查情况网站建设 教材 推荐
  • 互动网站建设的主页霸气又聚财的公司名字大全
  • 营销型网站建设目标wordpress 左右风格主题
  • wordpress 文章换行潮州网站seo推广
  • wordpress电影站开发wordpress导航菜单最右边
  • 恩施州建设局网站tp5企业网站开发实例
  • 织梦网站怎么修改内容开发一款短视频app软件需要多少钱
  • 网站建设使用的什么软件有哪些内容wordpress自助友链
  • 嘉兴 做企业网站巴里坤网站建设
  • 网站建设 中标公告营销型网站的基本模板
  • 蒙特网站建设放在主机上的网站程序如何建压缩包然后直接下载
  • 建设银行 杭州市公积金管理中心网站典型的电子商务网站
  • 长尾关键词网站设计培训
  • 上海自助建站上海网站建设东营免费网站制作
  • 网站备案找谁海外营销网站
  • 做网站 后端是谁来做的手机网站模板使用方法
  • php 企业网站模板 想1建设工程合同印花税计税依据
  • 写文案要看的网站网站的ftp账号和密码是什么
  • 中山cms建站asp网站建设公司
  • 红色企业网站模板vue 实现网站开发
  • 做自媒体用到的网站一站式营销型网站建设
  • 网站建设公司会议网站专业建设存在问题及改进建议
  • 百度搜索引擎下载女生做seo网站推广