吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6082|回复: 213
收起左侧

[原创工具] 图片转图标 Img2Ico(简称I2I)

    [复制链接]
nfsyan 发表于 2025-7-3 12:10
最近由于工作需要,经常需要图标。以前一直用的图片在线转换,偶尔也用iconworkshop,但嫌它太麻烦了。于是它就诞生啦!
Img2Ico
需要.net 8.0运行库,没有时会弹出下载
wechat_2025-07-03_120513_789.png
功能(优点):
  • 批量转换图片->图标;
  • 支持多尺寸;
  • 支持提取程序/DLL中的图标文件;
  • 支持圆角;(beta)
  • 支持简单裁剪;
  • 不到200Kb


缺点(暂时自己发现的BUG)
  • 需要运行库
  • 圆角功能好像周边会有淡淡的边框(如图,不知道是不是我系统问题,欢迎反馈)
    wechat_2025-07-03_120445_481.png


下一步准备:
  • 有时间的话,使用.net 4.8重新写
  • 想办法完善圆角
  • 支持导出为DLL,那样就可以把ICO做成合集了




由于体积比较小就直接放附件了:

I2I.zip (157.7 KB, 下载次数: 909)

免费评分

参与人数 43吾爱币 +42 热心值 +38 收起 理由
wodahS + 1 谢谢@Thanks!
wuxiaolei1 + 1 我很赞同!
zkq19881228 + 1 + 1 谢谢@Thanks!
kuku20009 + 1 + 1 我很赞同!
caihuachaorou87 + 1 + 1 谢谢@Thanks!
CarlAtlantic + 1 谢谢@Thanks!
hfol85 + 1 + 1 我很赞同!
xgq8686 + 1 + 1 谢谢@Thanks!
glfing + 1 谢谢@Thanks!
CareYou + 1 + 1 热心回复!
52pojieplayer + 1 谢谢@Thanks!
a520 + 1 + 1 我很赞同!
BlueSubmarine + 1 + 1 谢谢@Thanks!
诸葛文诚 + 1 + 1 谢谢@Thanks!
jy00812995 + 1 + 1 谢谢@Thanks!
maiwens + 1 + 1 谢谢@Thanks!
1sina + 1 + 1 热心回复!
wecan200 + 1 谢谢@Thanks!
吖宝丶JIM + 1 + 1 我很赞同!
哒劳德 + 1 + 1 我很赞同!
MayMayHai8971 + 1 + 1 用心讨论,共获提升!
无尘浪子 + 1 谢谢@Thanks!
ZYDzzZ + 1 + 1 我很赞同!
jeanschow + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
schtg + 1 + 1 谢谢@Thanks!
开心熊猫741 + 1 + 1 热心回复!
renzhen1997 + 1 + 1 好用 好用
wewsopkyo + 1 + 1 我很赞同!
z1017 + 1 用心讨论,共获提升!
voa258 + 1 我很赞同!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
liwei69288 + 1 + 1 我很赞同!
黄金体验 + 1 + 1 热心回复!
zf89 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lowehardt + 1 谢谢@Thanks!
yanglinman + 1 谢谢@Thanks!
破解吾爱2020 + 1 + 1 我很赞同!
hicesamon + 1 谢谢@Thanks!
qinni8513 + 1 + 1 谢谢@Thanks!
yidiandian + 1 + 1 谢谢@Thanks!
helh0275 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pbgz + 1 + 1 热心回复!
grrr_zhao + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

JARK006 发表于 2025-7-6 23:25
之前就写过:
[Python] 纯文本查看 复制代码
from PIL import Image
import os, sys, time

# pyinstaller.exe -F -w ./image2ico.py -i ./image2ico.ico"

sizes = [(32, 32), (64, 64), (128, 128), (256, 256)]

def main():
    sizeStr = "    输出文件包含 "
    for size in sizes:
        sizeStr += f"{size[0]}x{size[1]} "
    sizeStr += "分辨率。"

    print("\n|===  常用图像格式转换到ICO图标文件 V1.1 By JARK006  ====|\n")
    print("    当图片宽高不一致时,将居中切割为正方形。")
    print(sizeStr)
    print("\n|========================================================|\n")

    if len(sys.argv) == 2 and os.path.exists(sys.argv[1]):
        filePath = sys.argv[1]
    else:
        filePath = input("请输入文件路径,或者把图片拖进来回车:")
        filePath = filePath.replace('"', "").replace("'", "")

    if not os.path.exists(filePath):
        print("文件路径错误!!!")
        time.sleep(3)
        exit(-1)

    try:
        image = Image.open(filePath)
    except:
        print("文件格式不支持!!!")
        print("请输入正确的图像文件,或者受支持的图像格式。")
        time.sleep(3)
        exit(-1)

    if image.size[0] != image.size[1]:
        offset = abs(image.size[0] - image.size[1]) / 2
        # 居中切割正方形
        if image.size[0] > image.size[1]:
            image = image.crop((offset, 0, offset + image.size[1], image.size[1]))
        else:
            image = image.crop((0, offset, image.size[0], offset + image.size[0]))

    fileName, fileExt = os.path.splitext(filePath)
    newFileName = fileName + ".ico"
    image.resize((256, 256)).save(
        newFileName, format="ICO", sizes=sizes
    )
    print("\n转换完成: [ " + newFileName + " ]\n")

if __name__ == "__main__":
    main()
snluwei 发表于 2025-7-3 12:26
mrpizi1221 发表于 2025-7-3 12:30
风经过 发表于 2025-7-3 12:32
能批量导出各种大小的图标吗?
52zhang 发表于 2025-7-3 12:33
感谢分享
mingtou804 发表于 2025-7-3 12:51
备份试用
shangshanlu 发表于 2025-7-3 13:00
,谢谢分享,备份试用。
WJFCYLIB 发表于 2025-7-3 13:00
好东西,果断拿下
WasteRoadJ 发表于 2025-7-3 13:27
感谢楼主分享
宜城小站 发表于 2025-7-3 13:39
简单易用
拿走感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-7-20 19:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表