美文网首页
基于png2icojs开发的png2ico转换器

基于png2icojs开发的png2ico转换器

作者: Tim1998 | 来源:发表于2023-12-23 17:44 被阅读0次

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

    预览地址

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

    相关文章

      网友评论

          本文标题:基于png2icojs开发的png2ico转换器

          本文链接:https://www.haomeiwen.com/subject/ixlcndtx.html