吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 5296|回复: 100
上一主题 下一主题
收起左侧

[原创工具] python图标制作工具【jpg、png转ico】

  [复制链接]
跳转到指定楼层
楼主
q124444 发表于 2021-12-27 15:30 回帖奖励
本帖最后由 q124444 于 2021-12-31 20:33 编辑

最近在cv做个博客,碰到了需求要弄个网站图标。。。拿python写了一个
由于基于pyqt5这个图形库导致软件比较大
其他gui没用过,pyqt5主要是简单,哪个gui库体积小的可以回复我一下

源码+成品下载链接:
50M大小图形化界面链接:https://wwi.lanzouy.com/i2Vfey7367c(bug已修复)
10M大小cmd界面链接:https://wwi.lanzouy.com/ih4nyy2mw6b

cmd版本源码:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project -> File   Huawei -> test
@IDE    PyCharm
@Author Mr. liyuan
@Date   2021/12/27 13:15
@User   break
'''
import os
from PIL import Image

try:
    ImgFiler = input("输入文件路径+文件名(C:\\1.jpg:")
    ImgPath = str(ImgFiler).split(',')[0].replace('\'', '').replace('(', '')
    # 取图片当前路径
    save_Path = ImgPath.rpartition('\\')[0] + '\\'
    # 取图片名称
    img_name = ImgPath.split('\\')[-1]
    ico_name = img_name.split('.')[0] + '.ico'

    size_num = int(input("请输入163264128256尺寸:"))
    if size_num == 16:
        size_ico = (16, 16)
    elif size_num == 32:
        size_ico = (32, 32)
    elif size_num == 64:
        size_ico = (64, 64)
    elif size_num == 128:
        size_ico = (128, 128)
    elif size_num == 256:
        size_ico = (256, 256)
    else:
        print("请输入正确的size")
    ico = Image.open(ImgPath).resize(size_ico)
    path = os.path.join(save_Path, ico_name)
    ico.save(path)
    print('生成完毕,{} --> {}'.format(img_name, ico_name))
except (AttributeError, IOError):
    print("图片路径或尺寸选择错误")

input("按任意键退出")

2021.12.31  修复了图形化界面的生成时候提示报错的BUG,在pycharm中会自动记录图片的路径,而打包以后不会记录。

XZ{CQL%QY6JU1A)LHK@EOB4.png (97.78 KB, 下载次数: 7)

XZ{CQL%QY6JU1A)LHK@EOB4.png

M0WW8~@CVMV80XDH0{}Q83R.png (94.04 KB, 下载次数: 5)

M0WW8~@CVMV80XDH0{}Q83R.png

免费评分

参与人数 17吾爱币 +20 热心值 +14 收起 理由
makees + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
kuaileya + 1 谢谢@Thanks!
IDE + 1 + 1 我很赞同!
wyf321 + 1 + 1 我很赞同!
hanicegoby + 1 + 1 我很赞同!
留住我你有福 + 1 + 1 谢谢@Thanks!
pbgz + 1 + 1 谢谢@Thanks!
neal5808 + 1 谢谢@Thanks!
xianyuamiao123 + 1 + 1 谢谢@Thanks!
UPC + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sheenblue + 1 谢谢@Thanks!
yanglinman + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ghoob321 + 1 + 1 热心回复!
swhyy + 1 我很赞同!
cjcmxc + 1 + 1 我很赞同!
Maise + 1 我很赞同!

查看全部评分

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

推荐
 楼主| q124444 发表于 2021-12-28 10:09 |楼主
sheenblue 发表于 2021-12-28 09:06
有源码分享吗大佬

import os, sys
from PIL import Image
from UI import Ui_MainWindow
from PyQt5.QtWidgets import QMainWindow, QFileDialog, QApplication, QMessageBox


class MyMainWindow(QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)
        self.setupUi(self)
        # self.setWindowIcon(QIcon())
        self._init_ui()
        self.save_img_path.setText(os.path.abspath("./"))

    def _init_ui(self):
        self.setFixedSize(self.width(), self.height())
        self.open_jpg.clicked.connect(self.Open_img)
        self.openPath.clicked.connect(self.saveImg_Path)
        self.save_ico.clicked.connect(self.save_Ico)

    def Open_img(self):
        ImgFiler = QFileDialog.getOpenFileName(self, "选取图片文件,文件名请使用英文开头", "./", "Img Files(*.jpg *.png)")
        ImgPath = str(ImgFiler).split(',')[0].replace('\'', '').replace('(', '')
        self.img_path.setText(ImgPath)
        # print(ImgPath)

    def saveImg_Path(self):
        save_Path = QFileDialog.getExistingDirectory(self, "选择保存路径", "./")
        self.save_img_path.setText(save_Path)

    def save_Ico(self):
        # 选择图片
        try:
            img_name = self.img_path.text().split('/')[-1]
            ico_name = img_name.split('.')[0] + '.ico'
            print(ico_name)
            # 设置size
            if self.size16_radioButton.isChecked() == True:
                size_ico = (16, 16)
            elif self.size32_radioButton.isChecked() == True:
                size_ico = (32, 32)
            elif self.size64_radioButton.isChecked() == True:
                size_ico = (64, 64)
            elif self.size128_radioButton.isChecked() == True:
                size_ico = (128, 128)
            elif self.size256_radioButton.isChecked() == True:
                size_ico = (256, 256)
            else:
                QMessageBox.information(self, "未选择尺寸", "请选择size", QMessageBox.Yes)
            im = Image.open(img_name).resize(size_ico)
            # 图标文件保存至icon目录
            path = os.path.join(self.save_img_path.text(), ico_name)
            im.save(path)
            # print('{} --> {}'.format(img_name, ico_name))
            QMessageBox.information(self, "生成成功", '{} --> {}'.format(img_name, ico_name), QMessageBox.Yes)
        except (AttributeError,IOError):
            QMessageBox.information(self, "配置错误", "未选择图片或保存路径错误", QMessageBox.Yes)



if __name__ == '__main__':
    app = QApplication(sys.argv)
    my_wnd = MyMainWindow()
    wnd = my_wnd
    my_wnd.show()
    sys.exit(app.exec_())
UI文件你自己想办法解决吧  大致的功能代码已经写出来了

免费评分

参与人数 1热心值 +1 收起 理由
sheenblue + 1 谢谢@Thanks!

查看全部评分

推荐
杨浦吴彦祖 发表于 2021-12-28 21:11
刚学python,报错了,哈哈

Traceback (most recent call last):
  File "C:/Users/QianS/AppData/Local/Programs/Python/Python310/test-20211226.py", line 13, in <module>
    from PIL import Image
ModuleNotFoundError: No module named 'PIL'
4#
丶丿後宫 发表于 2021-12-27 15:35
5#
dongse 发表于 2021-12-27 15:49
下载自用
6#
z130258 发表于 2021-12-27 15:52
不孬不孬。下载自用
7#
dork 发表于 2021-12-27 16:27
ico转换器而言确实有点大
8#
Xw丶小威 发表于 2021-12-27 16:28
py+qt这么大哦。
9#
追风营销 发表于 2021-12-27 16:33
把源码贴上来呗下载50M大小
10#
w360 发表于 2021-12-27 17:11
下载了打不开缺文件
11#
swhyy 发表于 2021-12-27 19:32
支持原创 给你加分
12#
reens 发表于 2021-12-27 19:43
换语言才是正途
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2022-5-18 23:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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