@fiahfy/icns

中文文档
0.0.7发布于 2020/12/29MITTypeScriptCommonJS近 30 天下载 4.9万

Apple Icon Image format parser and builder

原始使用文档
文档目录10 节
  1. Installation
  2. Usage
  3. Parsing
  4. Building
  5. API
  6. Class: Icns
  7. Class: IcnsImage
  8. Class: IcnsFileHeader
  9. Specifications
  10. Supported OSTypes

icns

badge

Apple Icon Image format parser and builder.

Installation

npm install @fiahfy/icns

Usage

Parsing

import fs from 'fs'
import { Icns } from '@fiahfy/icns'

const buf = fs.readFileSync('icon.icns')
const icns = Icns.from(buf)
const imagesAsBuffers = icns.images.map((icon) => icon.image)

Note that the images may be encoded in different file formats, in accordance with Apple's icon type specifications.

Building

import fs from 'fs'
import { Icns, IcnsImage } from '@fiahfy/icns'

const icns = new Icns()
let buf, image

buf = fs.readFileSync('512x512.png')
image = IcnsImage.fromPNG(buf, 'ic09')
icns.append(image)

buf = fs.readFileSync('1024x1024.png')
image = IcnsImage.fromPNG(buf, 'ic10')
icns.append(image)

/* Some other PNG files */

fs.writeFileSync('icon.icns', icns.data)

API

Class: Icns

static from(buffer)

Create ICNS from the icon buffer.

buffer

Type: Buffer

The ICNS icon buffer.

append(image)

Adds ICNS image at the end.

image

Type: IcnsImage

The ICNS Image to append.

insert(image, index)

Inserts ICNS image at the specified position.

image

Type: IcnsImage

The ICNS Image to insert.

index

Type: number

The position at which to insert the ICNS Image.

remove(index)

Removes ICNS image at the specified position.

index

Type: number

The position of the ICNS Image to remove.

fileHeader

Type: IcnsFileHeader

Return the file header on the ICNS.

images

Type: IcnsImage[]

Return the ICNS images on the ICNS.

data

Type: Buffer

Return the ICNS buffer.

Class: IcnsImage

static from(buffer)

Create ICNS image from the buffer.

buffer

Type: Buffer

The ICNS image buffer.

static fromPNG(buffer, osType)

Create ICNS Image from the PNG image buffer.

buffer

Type: Buffer

The PNG image buffer.

osType

Type: OSType

The icon OSType.

Class: IcnsFileHeader

static from(buffer)

Create ICNS file header from the buffer.

buffer

Type: Buffer

The ICNS file header buffer.

Specifications

Supported OSTypes

OSTypeOS VersionSizeDescription
is328.51616×16 24-bit icon
il328.53232x32 24-bit icon
ih328.54848×48 24-bit icon
it3210.0128128x128 24-bit icon
s8mk8.51616x16 8-bit mask
l8mk8.53232×32 8-bit mask
h8mk8.54848×48 8-bit mask
t8mk10.0128128x128 8-bit mask
ic041616x16 ARGB
ic053232x32 ARGB
icp410.71616x16 icon in PNG format
icp510.73232x32 icon in PNG format
icp610.76464x64 icon in PNG format
ic0710.7128128x128 icon in PNG format
ic0810.5256256×256 icon in PNG format
ic0910.5512512×512 icon in PNG format
ic1010.710241024×1024 in 10.7 (or 512x512@2x "retina" in 10.8) icon in PNG format
ic1110.83216x16@2x "retina" icon in PNG format
ic1210.86432x32@2x "retina" icon in PNG format
ic1310.8256128x128@2x "retina" icon in PNG format
ic1410.8512256x256@2x "retina" icon in PNG format

版本与发布记录

@fiahfy/icns 共发布 7 个版本,首次发布于 2018/10/07;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.7latest2020/12/295 年前
0.0.62019/11/156 年前
0.0.52019/07/277 年前
0.0.42018/12/077 年前
0.0.32018/12/077 年前
0.0.22018/10/218 年前

关于 @fiahfy/icns 的常见问题

@fiahfy/icns 是什么?

Apple Icon Image format parser and builder

如何安装 @fiahfy/icns?

在项目目录运行 npm install @fiahfy/icns,或使用 pnpm add / yarn add / bun add。

@fiahfy/icns 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fiahfy/icns 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@fiahfy/icns 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=8。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@fiahfy/icns 可以商用吗?

@fiahfy/icns 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fiahfy/icns 的下载量有多少?

根据 npm 官方下载统计,@fiahfy/icns 在 2026/10/15 – 2026/11/13 这 30 天内被下载 49,337 次,日均约 1,645 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fiahfy/icns 还在维护吗?

最新版本 0.0.7 发布于 2020/12/29(5 年前);至今共发布 7 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/10/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。