基于png2icojs开发的png2ico转换器

由于鄙人经常开发各类网站,需要经常用到ico图标,故鄙人基于github开源项目开发了一个png2ico转换器,需要png转ico的同学可以参考之。

预览地址

png2ico入口

简介

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可忽略它。

posted @ 2023-12-25 15:52  Java2048  阅读(3)  评论(0编辑  收藏  举报  来源
个人网站