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

news2024/12/20 0:00:28

在这里插入图片描述

最近在开发博客本地客户端 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.coloradmin.cn/o/1487892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python+OpenGL三维模型显示鼠标缩放旋转平移

程序示例精选 PythonOpenGL三维模型显示鼠标缩放旋转平移 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonOpenGL三维模型显示鼠标缩放旋转平移》编写代码,代码整洁&#…

「MySQL」基本操作类型

🎇个人主页:Ice_Sugar_7 🎇所属专栏:数据库 🎇欢迎点赞收藏加关注哦! 数据库的操作 创建、显示数据库 使用 create 创建一个数据库 create database goods;然后可以用 show databases 来查看已经创建的数…

mac电脑使用pyinstaller打包python脚本

pyinstaller -F template.py 出现报错"AssertionError: Executable contains code signature!" 移除签名 codesign --remove-signature /Users/f7692281/PycharmProjects/TPtestlist/transmit_v6.0.py 打包命令 pyinstaller --windowed transmit_v6.0.py pyinst…

【MATLAB】语音信号识别与处理:T1小波滤波算法去噪及谱相减算法呈现频谱

1 基本定义 T1小波滤波算法是一种基于小波变换的信号去噪算法。它可以有效地去除信号中的噪声,并保留信号的主要特征。该算法的主要思想是将信号分解为多个不同尺度的小波系数,然后通过对小波系数进行阈值处理来去除噪声。 具体来说,T1小波滤…

企业CRM系统选型指南 | 掌握必备功能,提升工作效率

大家好我是卡林,今天分享CRM系统的十大功能,企业CRM系统选型指南。说起CRM的功能,大家会联想到什么?数据库、商机管理或者销售漏斗,这些是大部分人都会联想到的功能,但不太全面。如线索管理、联系人管理、客…

开发苹果iOS应用后如何提交到App Store

文章目录 摘要引言正文一、选择IPA文件和通道二、设置专用密码三、上传IPA文件提交上传界面说明 总结 摘要 本文将介绍使用AppUploader工具提交iOS应用到App Store的详细步骤。通过选择IPA文件和通道、设置专用密码以及进行上传,开发者可以顺利完成应用的提交上传过…

【牛客面试必刷TOP101】Day25.BM38 在二叉树中找到两个节点的最近公共祖先和BM40 重建二叉树

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:牛客面试必刷TOP101 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&…

LeetCode 刷题 [C++] 第279题.完全平方数

题目描述 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11…

设计模式(十五)状态模式

请直接看原文:设计模式系列 ------------------------------------------------------------------------------------------------------------------------------- 前言 建议在阅读本文前先阅读设计模式(十一)策略模式这篇文章,虽说状态…

Python 获取beckhoff数据-OPCUA

1. 背景介绍 OPC UA(Unified Architecture,统一架构)是下一代的OPC 标准,它是一种工业通讯协议,通过提供一个完整的,安全和可靠的跨平台的架构,以获取实时和历史数据和时间。OPC UA的诞生是因为…

DSP,QX320F28337,数据手册,使用手册

自研32位双核CPU 主频400MHz 单精度浮点运算FPU 三角函数运算TMU flash 1MB,sram 1MB 3个12位ADC,采样率3MSPS 3个14位ADC,采样率2.67MSPS 24个ePWM通道,16个HRPWM(150PS)

爬虫实战——麻省理工学院新闻

文章目录 发现宝藏一、 目标二、 浅析三、获取所有模块四、请求处理模块、版面、文章1. 分析切换页面的参数传递2. 获取共有多少页标签并遍历版面3.解析版面并保存版面信息4. 解析文章列表和文章5. 清洗文章6. 保存文章图片 五、完整代码六、效果展示 发现宝藏 前些天发现了一…

力扣周赛387

第一题 代码 package Competition.The387Competitioin;public class Demo1 {public static void main(String[] args) {}public int[] resultArray(int[] nums) {int ans[]new int[nums.length];int arr1[]new int[nums.length];int arr2[]new int[nums.length];if(nums.leng…

玩转地下管网三维建模:MagicPipe3D系统

地下管网是保障城市运行的基础设施和“生命线”。随着实景三维中国建设的推进,构建地下管网三维模型与地上融合的数字孪生场景,对于提升智慧城市管理至关重要!针对现有三维管线建模数据差异大、建模交互弱、模型效果差、缺乏语义信息等缺陷&a…

Lua 篇(一)— 安装运行Hello World

目录 前言一、Lua 是什么?二、Lua和C#的区别三、安装 LuaLinux 系统上安装Mac OS X 系统上安装Window 系统上安装emmyluaRider 安装(推荐) 四、Lua学习资料 前言 Lua 是一种轻量级的嵌入式脚本语言,它可以与 C 语言无缝集成,提供了强大的编程…

开发一套小程序所需的费用取决于多个因素

随着移动互联网的发展,小程序已经成为许多企业和个人推广业务和服务的重要工具。 不过,对于很多想要开发小程序的人来说,最大的疑问就是开发一套小程序要花多少钱。 这个问题的答案并不是固定的,因为开发一个小程序的成本取决于几…

java 实现文字转语音

1. 内网环境 windows系统 选择jacob技术实现 免费的 从官网下载最新1.20jar包和dll文件 将jar包放到maven仓库中 dll文件放到jdk的bin目录下 项目代码: package com.example.ybxm.controller;import com.jacob.activeX.ActiveXComponent; import com.jacob.com…

代码随想录算法训练营第三十天| 回溯篇总结

文章目录 前言一、组合问题二、切割问题三、子集问题四、排列问题五、性能分析 前言 回溯法就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。 组合问题:N个数里面按一定规则找出k个数的集合 排列问题:N个数按一定规则全排列…

【QT】C/C++ 文件属性设置(隐藏、只读、加密等)方法和程序示例

目录 1文件属性设置 1.1 GetFileAttributes 获取文件属性函数的返回值 1.2 SetFileAttributes 设置文件属性函数 2 文件属性设置示例 1文件属性设置 在MSDN中,文件总共有15种属性,根据磁盘的分区格式不同,文件的属性也会不同。 需要包含头…

Docker镜像导出/导入

Docker镜像导出/导入 一、前言 在实际操作中,为了便于docker镜像环境和服务配置的迁移,我们有时需要将已在测试环境主机上完成一系列配置的docker镜像或运行中的容器镜像导出,并传输到生产或其他目标环境主机上运行。为此,本文主…