之前在前端设计实现了一个生成ico图标的功能,然而后来经过用户的反馈才发现,之前生成的ico图标的编码格式,其实只能在网站等地方使用,如果在windows桌面上使用,就会提示找不到ico图标文件,错误提示如下所示。

 这个错误确实是百思不得其解,我以为只要图片的后缀是ico的,windows系统就能够认可,然而事实是,windows的桌面ico对它内部的编码格式是有很严格要求的。也就是说,windows桌面图标使用的ico文件,不是从png或者jpg直接演化而来的。

因此从网上找到了一个思路,也就是先将任何图像变成bmp格式的,因为bmp格式保存的就是实际的像素值和每个像素的内容。然后再将bmp格式后缀改成ico就能够被windows系统所识别了。所以我们可以将普通图像显示在canvas中,然后getimagedata获取到图像的每个像素内容,然后通过代码,以bmp格式的形式,来将每个像素放入到规定的编码格式中,并且附加上数据头等等一些指示符,就可以自己拼接出一个完整的bmp编码文件,然后变成ico后缀就搞定了。大概的思路就是这样,因为实际上自己拼接出图像文件的编码并不是太简单,当然也不难,开源的资源也很多。

在线ICO图标制作生成,图片转换ICO图标Pro版icon-default.png?t=LA92https://www.butterpig.top/icopro

 所以这个工具现在可以选择是将图片转换成普通网站使用的ico图标,还是windows专用的标准ico图标格式。并且因为windows桌面图标是通过bmp演化而来,所以实际上这个ico的文件大小,其实居然是和他的宽高尺寸完全相关的,大家可以自己去这个工具体验一下。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐