在线工具箱
图片转 ICO 转换器

在线图片转 ICO 转换器

把 PNG/JPG/WebP 转成多尺寸多图层 Windows ICO 图标。

隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传
图片转ICO图标制作图片

1. 上传图片

PNG / JPG / WebP / GIF / BMP / SVG,可多选
尚未添加图片

2. 转换设置

图层尺寸(多选)

256 尺寸会自动强制使用 PNG 图层,避免资源管理器不识别。

非正方形缩放策略
透明通道与背景
填充底色

取消「保留透明」后,原本透明的区域将使用上方底色填涂。

图层格式

3. 预览

各尺寸按原始像素 1:1 展示,棋盘格代表透明区域,便于判断小尺寸下的可辨识度。

任务栏 / 桌面模拟

4. 生成与下载

🔒 全部在浏览器本地完成,图片不会上传到任何服务器。

工作原理

  1. 1图片只用本地 File 对象读取(createObjectURL / createImageBitmap),不会发起任何网络请求,也不会把像素交给服务器。
  2. 2对每个目标尺寸,先在离屏 canvas 上做阶梯降采样(每次最多缩小 50%),再按所选策略绘制到 size×size 画布,小尺寸图标更锐利、锯齿更少。
  3. 3每个尺寸的图层数据由 canvas.toBlob 生成 PNG 字节,或取 getImageData 的 RGBA 像素编码为 32 位 BMP 位图(BITMAPINFOHEADER + 自下而上的 BGRA + AND 掩码)。
  4. 4最后按 ICO 规范手工拼装二进制:ICONDIR(保留位 0、类型 1、图层数 N)+ N 个 16 字节 ICONDIRENTRY + 各图层数据,全部字段小端,256 尺寸的宽高字节写 0。
  5. 5批量导出使用内置的 store 模式 ZIP 实现(CRC-32 + UTF-8 文件名标志),无需任何第三方库即可打包下载。

常见问题

生成的 ICO 在 Windows 里能正常显示吗?

可以。文件按标准 ICO 结构拼装:ICONDIRENTRY 中类型为 1、位深为 32、尺寸字段正确(256 记作 0),图层优先使用 Vista 及以上支持的内嵌 PNG 数据,Windows 资源管理器与任务栏均可正确读取并显示透明背景。

为什么 256×256 图层不能选 BMP 格式?

BMP 位图对 256 这种大尺寸的 ICO 图层支持不佳,Windows 资源管理器可能不识别。因此勾选 256 尺寸时工具会自动改用 PNG 图层,无需你手动切换。

非正方形图片会变形吗?

默认的「包含」策略会等比缩放并居中留白,不会变形;「覆盖」会等比放大后居中裁切;只有显式选择「拉伸」时才会改变宽高比并变形,工具会在界面中提示。

源图比目标尺寸小,会被放大吗?

默认允许放大,但放大不会带来真实清晰度。取消勾选「允许放大」后,小于源图边长的目标尺寸会被跳过,并在预览区标注,避免产生虚假清晰的图标。

渐变透明的图片会丢失 alpha 吗?

不会。保留透明通道时半透明像素的原样写入图层的 alpha 通道;只有你主动取消「保留透明」并指定底色时,才会用底色填充透明区域。

图片会上传到服务器吗?

不会。解码、缩放、编码与打包全部在浏览器本地完成,页面不发起任何网络请求,断网状态下也能正常使用。

更多在线工具