预览地址
https://png2ico.cn
简介
png2icojs 是一个简单便捷的 javascript es6 类库,运用它可以将 png 转换为 ico
ICO file. 它可以运行在各类主流浏览器上面
关键代码如下:
import { PngIcoConverter } from "../src/png2icojs.js";
// ...
const inputs = [...files].map(file => ({
png: file
}));
// Result is a Blob
const resultBlob1 = await converter.convertToBlobAsync(inputs); // Default mime type is image/x-icon
const resultBlob2 = await converter.convertToBlobAsync(inputs, "image/your-own-mime");
// Result is an Uint8Array
const resultArr = await converter.convertAsync(inputs);
API 公开了具有许多受保护函数的 PngIcoConverter 类,因此您可以根据需要覆盖它们。
方法
PngIcoConverter 公开了以下方法:
async convertToBlobSync (输入:IConvertInputItem[],mime=IcoMime ):Promise < Blob >;
将 PNG 文件转换为具有可选 mime 类型的 ICO Blob 。默认值:图像/x-icon 。
async convertAsync ( inputs:IConvertInputItem[]):Promise < Uint8Array >;
将 PNG 文件转换为 Uint8Array 。
输入选项
IConverInputItem 具有以下属性:
png:png 文件。可以是 Blob 或 ArrayBuffer 。
bpp (可选,默认为 0 ):每像素位数。用于 ICO 图像的标题。在我的实验中,大多数应用程序只是完全忽略这个值,并使用 PNG 图像中的值。
ignoreSize (可选,默认为 false ):由于 ICO 的大小字节只有 1 个字节,图标的最大大小为 256px 。然而,我已经尝试制作一个 512px 的图标,到目前为止它是有效的。如果您的图像大小超过 256px ,库仍然会抛出错误。将此设置为 true 可忽略它。