5 分钟配置好 Electron 应用的图标

在这里插入图片描述

最近在开发博客本地客户端 HexoPress,应用做好后,需要打包,如果不希望打包出来 App 的图标用的是 Electron 默认的星球环绕的图标,那么需要自己制作图标。

制作图标

首先,你需要给各种操作系统制作一个满足要求的图标,根据文档的指引,我建议你直接制作一个 1024 像素见方的 png 图片,作为底稿即可。以此为基础,可以创建适用于 Windows,Mac,Linux 三种系统的图标。这三个系统要求的图标格式各不相同,制作方法也各不相同。

系统扩展名尺寸
Windowsico256x256
Macicns512x512
Linuxpng512x512

以上只是表面上的尺寸,实际,苹果的图标制作是最麻烦的。苹果因为要适配不同分辨率的屏幕,以及各种不同的显示器,需要一个图标的集合,叫 iconset。

苹果 MacOS

如果你像我一样安装过 XCode,那么你会发现,命令行有两个命令 sipsiconutil 这两个正是用来制作图标的工具。

首先是使用 sips 命令,将图片转换成多种格式。

sips -z 16 16     icon.png --out icon.iconset/icon_16x16.png
sips -z 32 32     icon.png --out icon.iconset/icon_16x16@2x.png
sips -z 32 32     icon.png --out icon.iconset/icon_32x32.png
sips -z 64 64     icon.png --out icon.iconset/icon_32x32@2x.png
sips -z 128 128   icon.png --out icon.iconset/icon_128x128.png
sips -z 256 256   icon.png --out icon.iconset/icon_128x128@2x.png
sips -z 256 256   icon.png --out icon.iconset/icon_256x256.png
sips -z 512 512   icon.png --out icon.iconset/icon_256x256@2x.png
sips -z 512 512   icon.png --out icon.iconset/icon_512x512.png
cp icon.png iconset/icon_512x512@2x.png
iconutil -c icns icon.iconset

将你准备的图标底稿,命名为 icon.png 放在一个目录里,然后建立一个图标目录叫, icon.iconset,然后使用 sips 命令将图片格式化成上述各种尺寸,然后输出到 icon.iconset 文件夹。

这个文件夹也是一个苹果系统可以认可的图标格式。可以用 iconutil 转换成另一种格式,也就是 icns。上图的最后一个命令做这个。

然后我们就得到了苹果系统的图标。

Linux 系统

Linux 相对比较简单,只要一个普通 png 即可。从刚才生成的图片中,挑出 256px 的图片,然后重命名成 icon.png,即可。

Windows 系统

Window 需要的 ico 格式,需要专门的工具进行制作,这里推荐网上能直接访问的在线工具。比如:https://redketchup.io/icon-converter,将之前准备好的底稿上传,然后,调整好参数,直接 Download,就得到了 256px 的 ico 格式图标。

配置 electron-forge

Electron 应用的打包方法现在官方主推的是 Electron Forge,另外的 Electron Builder 也很好用,不过我就用官方的了。

制作好的图标,放到一个目录下,文件名相同,扩展名不同,这样打包的时候,forge 会自动选择目标系统合适的图标。

const config: ForgeConfig = {packagerConfig: {asar: true,name: 'HexoPress',icon: './src/assets/icon',},rebuildConfig: {},makers: [new MakerSquirrel({setupIcon: './src/assets/icon.ico',}),new MakerZIP({}, ['darwin']),new MakerDeb({options: {icon: './src/assets/icon.png',},}),new MakerRpm({}),]
}

上面是一个 Electron Forge 的配置文件,forge.config.ts ,如果不是用的 TypeScript 也不要紧,其实格式差不多,只是 Makers 那里写起来有些区别。

可以注意到,每种操作系统,都用 setupIcon 指定了图标。而最上面的那个 packageConfig 会影响 Mac 上打出来的包的名字和 Icon。

总结

本文介绍了 Electron 应用,使用 Forge 作为打包器的时候,icon 的配置方法。另外还介绍了官方推荐的各种系统的图标的规格。以及不同系统的图标制作方法和工具。

其实,比起把一个现成的 icon 图片做成图标资源,自己设计一个好看的图标才是最难的。本文开头的图标就是我给自己的开源软件 HexoPress 设计的 Logo,大家觉得好看么?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/506142.html

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

相关文章

软考54-上午题-【数据库】-关系模式的范式-真题

一、范式总结 第一步,先求候选码,由此得到:主属性、非主属性。 二、判断部分函数依赖的技巧 【回顾】:部分函数依赖 (X,Y)——>Z; X——>Z 或者 Y——>Z 题型:给…

vue2结合electron开发桌面端应用

一、Electron是什么? Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 。允许您保持一个 JavaScript 代码代码库并创建可在Windows、macOS和Linux上运行的跨平台应用 。 Electron 经常与 Ch…

MySQL 常用优化方式

MySQL 常用优化方式 sql 书写顺序与执行顺序SQL设计优化使用索引避免索引失效分析慢查询合理使用子查询和临时表列相关使用 日常SQL优化场景limit语句隐式类型转换嵌套子查询混合排序查询重写 sql 书写顺序与执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM &…

CKKS EXPLAINED: PART 1, VANILLA ENCODING AND DECODING

CKKS EXPLAINED: PART 1, VANILLA ENCODING AND DECODING Introduction 同态加密是一个有前途的领域&#xff0c;它允许在加密数据上进行计算。一篇名为“同态加密是什么”的博文提供了广泛的解释&#xff0c;说明了同态加密的含义以及这一研究领域的重要性。 在本系列文章中…

排序(3)——直接选择排序

目录 直接选择排序 基本思想 整体思路&#xff08;升序&#xff09; 单趟 多趟 代码实现 特性总结 直接选择排序 基本思想 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的…

使用OpenCV和mediapipe实现手部信息抓取

目录 运行效果 挨行解读 &#xff08;1&#xff09;初始化MediaPipe Hand模块 &#xff08;2&#xff09;打开摄像头 &#xff08;3&#xff09;初始化计时器 &#xff08;4&#xff09;开始程序主题部分 &#xff08;5&#xff09;读取视频帧 &#xff08;6&#xff09…

美团分布式 ID 框架 Leaf 介绍和使用

一、Leaf 在当今日益数字化的世界里&#xff0c;软件系统的开发已经成为了几乎所有行业的核心。然而&#xff0c;随着应用程序的规模不断扩大&#xff0c;以及对性能和可扩展性的需求不断增加&#xff0c;传统的软件架构和设计模式也在不断地面临挑战。其中一个主要挑战就是如…

LeetCode---386周赛

题目列表 3046. 分割数组 3047. 求交集区域内的最大正方形面积 3048. 标记所有下标的最早秒数 I 3049. 标记所有下标的最早秒数 II 一、分割数组 这题简单的思维题&#xff0c;要想将数组分为两个数组&#xff0c;且分出的两个数组中数字不会重复&#xff0c;很显然一个数…

2024第二次培训:win11系统下使用nginx、JDK、mysql搭建基于vue2、java前后端分离的web应用运行环境

一.背景 公司安排了带徒弟的任务&#xff0c;给培训写点材料。前面分开介绍了mysql、jdk、nginx的安装&#xff0c;都只是零星的介绍&#xff0c;只能算零散的学习。学习了有什么用呢&#xff1f;能解决什么问题&#xff1f;能完成什么工作&#xff1f; 今天我们要用之前的几篇…

高中数学:分式函数值域的求法

一、求值域的两种基本思路 1、根据函数图像和定义域求出值域。 难点&#xff1a;画出函数图像 2、研究函数单调性和定义域求出值域。 本篇主要讲一下&#xff0c;画图法求值域 二、函数图像画法 高中所学的分式函数&#xff0c;基本由反比例函数平移得到。 复杂分式函数图…

web漏洞与规避

文章目录 一、XSS 跨站脚本攻击1.1 XSS攻击的主要类型反射型XSS存储型XSSDOM型XSS 1.2 前端开发如何应对XSS 二、CSRF 跨站请求伪造2.1 CSRF例子2.2 前端开发如何应对CSRF 三、SQL 注入3.1 前端如何防御SQL注入 四、前端如何使用CSP 一、XSS 跨站脚本攻击 攻击者通过在受害者的…

Day12:信息打点-Web应用源码泄漏开源闭源指纹识别GITSVNDS备份

目录 开源-CMS指纹识别源码获取方式 闭源-习惯&配置&特性等获取方式 闭源-托管资产平台资源搜索监控 思维导图 章节点 Web&#xff1a;语言/CMS/中间件/数据库/系统/WAF等 系统&#xff1a;操作系统/端口服务/网络环境/防火墙等 应用&#xff1a;APP对象/API接口/微…