1.1.1 • Published 5 years ago

i-png-normalizer v1.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

IPIN

Apple 对 png 图片进行了 pngcrush 压缩, 此格式的图片在非 Apple 的软件内无法正常显示. 其中典型的场景就是从 .ipa 文件中提取的 icon 在除了 Safari 之外的浏览器上无法正常显示.

IPIN (iPhone PNG Image Normalizer) 的作用就是将这种 PNG 图片进行转换, 以实现在各种图片解析软件中正常显示.

Apple 压缩优化后的 PNG 与 常规的 PNG 在数据格式方面的区别可参见 CgBI_file_format

node中现有的解决方案是 node-pngdefry, 是通过对 pngdefry (C) CLI工具的封装实现的.

相对于以上解决方案, IPIN 的优势在于输入和输出都是 buffer, 直接在内存中从二进制层面对 PNG 数据进行转换, 从而减少无关的 I/O 操作.

Test

npm i
npm start

Usage

依赖:

npm i i-png-normalizer --save

js

const fs = require('fs');
const path = require('path');

const IPngNormalizer = require('i-png-normalizer');
const srcBuf = fs.readFileSync(path.resolve(__dirname, './input.png'))
const ipin = new IPngNormalizer(srcBuf);
const distBuf = ipin.parse();

fs.writeFileSync(path.resolve(__dirname, './output.png'), distBuf);

Refs.

Specification

Implementations

License

MIT