使用python把普通图片生成ico图标

2023-05-16

文章目录:

  • 1 使用在线网站生成ico图标
  • 2 使用python的库包PythonMagick生成ico图片
    • 2.1 安装PythonMagick
    • 2.2 使用PythonMagick生成ico图片代码

1、icoIconfile的缩写,是Windows计算机中的一种图标文件格式,一般我们电脑桌面上显示的快捷方式就是这种格式的图标。一个ico文件实际上是多张不同尺寸图片的集合体,根据应用场景的不同自动选择合适的图片格式。

2、生成ico有两种方式

  • 在线生成,有很多在线的网站可以直接生成ico图标
  • 使用程序生成,如python的pythonMagic库

1 使用在线网站生成ico图标

1、在线网站生成ico图标比较简单,直接上传图片,然后选择输出图片尺寸即可,如下列出两个在线生成ico图标的网站

  • 昊霖设计:https://www.qtool.net/ico
  • http://ico.23406.com/

在这里插入图片描述

2 使用python的库包PythonMagick生成ico图片

1、Magick是一个图像处理的库,支持多种图像格式的读取,以及其他操作,而且支持很多接口语言,如下:

在这里插入图片描述

2、Magick的官方网址:

  • Magick的官方网址:https://imagemagick.org/script/index.php
  • Magick支持的各种编程语言接口库包:https://imagemagick.org/script/develop.php

2.1 安装PythonMagick

1、下载PythonMagickwhl安装包(根据自己的python版本进行选择)

  • 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick

在这里插入图片描述

2.2 使用PythonMagick生成ico图片代码

PythonMagick生成ico图片很简单,就三行代码:

  • image = PythonMagick.Image(image_path):读取图片数据
  • image.sample(‘hxw’) :生成ico图片的尺寸(就是对图片做了resize操作)
  • image.write(save_path):保存ico图片
from PIL import Image
import PythonMagick


def gen_ico_pill(image_path, resize=28, suffix='.png'):
    save_path = image_path.replace(suffix, '_pil.ico')
    image = Image.open(image_path)
    image_resize = image.resize((resize, resize), Image.LANCZOS)
    image_resize.save(save_path)


def gen_ico_magick(image_path, resize=28, suffix='.png'):
    save_path = image_path.replace(suffix, '_magick.ico')
    image = PythonMagick.Image(image_path)
    image.sample(f'{resize}x{resize}')  # 报错:RuntimeError: Magick: negative or zero image size `' @ error/image.c/CloneImage/811  # 是因为我没有给Image() 传入路径参数,laugh cry
    image.write(save_path)


if __name__ == '__main__':
    image_path = 'images/tree.png'
    gen_ico_pill(image_path, resize=28, suffix='.png')
    gen_ico_magick(image_path, resize=28, suffix='.png')

注意:我尝试使用pillow生成ico图片,但是生成的ico图片无论设置尺寸为多大,最终保存的ico图片大小都是16x16,不知道是为什么。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python把普通图片生成ico图标 的相关文章

  • celery任务eta已关闭,使用rabbitmq

    我使用教程中的默认设置和在 ubuntu 上运行的rabbitmq 使 Celery 任务正常进行 当我毫不延迟地安排任务时 一切都很好 但是当我给他们一个预计时间时 他们会被安排在未来 就好像我的时钟在某个地方关闭了一样 下面是一些请求任
  • 在二维数组中进行所有可能的组合

    我正在尝试制作具有所有可能组合的 4x4 16 像素黑白图像数组 我制作了以下数组作为模板 template 0 0 0 0 start with all white pixels 0 0 0 0 0 0 0 0 0 0 0 0 然后我想迭
  • 函数名称未定义

    我有一段代码 看起来像这样 if name main main def main print hello 但是 当我尝试运行此代码时 出现错误 NameError 名称 main 未定义 我是否没有在函数 def main 的第一行定义名称
  • 我可以在 matplotlib 中的绘图左侧放置一个垂直颜色条吗?

    来自颜色条方法的 matplotlib 命令摘要 http matplotlib org api pyplot api html highlight colorbar matplotlib pyplot colorbar我知道关键字参数or
  • 如何在plotly(python)中的刻度标签和图形之间添加空格?

    如果我使用绘图创建水平条形图 则每个条形的标签都与图表相对应 我想在标签和图表之间添加一些空间 填充 边距 我怎样才能做到这一点 Example import plotly offline as py import plotly graph
  • 获取字符串模板中所有标识符列表的函数(Python)

    对于标准库string template在Python中 有没有一个函数可以获取所有标识符的列表 例如 使用以下 xml 文件
  • pandas 数据框的最大大小

    我正在尝试使用读取一个有点大的数据集pandas read csv or read stata功能 但我不断遇到Memory Errors 数据帧的最大大小是多少 我的理解是 只要数据适合内存 数据帧就应该没问题 这对我来说不应该是问题 还
  • 无法使用Python请求会话模块登录网站

    我刚刚开始进行网络抓取 对于我的第一个项目 我尝试使用 requests Session 登录 artofproblemsolving com 并访问另一个用户的帐户 这是我的代码 import requests LOGIN URL htt
  • 将列表值转换为 pandas 中的行

    我有数据帧 其中一列具有相同长度的 numpy ndarray 值 df list 0 Out 92 array 0 0 0 0 29273096 0 30691767 0 27531403 我想将这些列表值转换为数据框并从 df iloc
  • Python 中“is”运算符的语义是什么?

    如何is运算符确定两个对象是否相同 它是如何工作的 我找不到它的记录 来自文档 http docs python org reference datamodel html 每个对象都有一个身份 一个类型 和一个值 对象的身份 一旦发生就永远
  • 尝试校准keras模型

    我正在尝试通过 Sklearn 实现来校准我的 CNN 模型CalibratedClassifierCV 尝试将其包装为KerasClassifier并覆盖预测功能但没有成功 有人可以说我做错了什么吗 这是模型代码 def create m
  • 如何在 python 中使用交叉验证执行 GridSearchCV

    我正在执行超参数调整RandomForest如下使用GridSearchCV X np array df features all features y np array df gold standard labels x train x
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • 增强迪基-富勒测试中的 BIC 在 Python 中到底是如何工作的?

    这个问题是关于 statsmodels tsa stattools python 库 adfuller 中的增强迪基 富勒测试实现 原则上 AIC 和 BIC 应该计算一组可用模型的信息标准 并选择最好的模型 信息损失最低的模型 但它们在增
  • Python GTK3 Treeview 向上或向下移动选择

    如何在树视图中向上或向下移动所选内容 我的想法是 我可以使用向上和向下按钮将选择向上移动一行或向下移动一行 我的 Treeview 使用 ListStore 不确定这是否重要 首先 我将使用我熟悉的 C 代码 如果您在将其翻译为 Pytho
  • 将 str.contains 映射到 pandas DataFrame

    python 初学者 我正在寻找创建字符串的字典映射以及关联的值 我有一个数据框 想要创建一个新列 如果字符串匹配 则会将该列标记为 x df pd DataFrame comp dell notebook dell notebook S3
  • 如何将 pandas DataFrame 转换为 TimeSeries?

    我正在寻找一种将 DataFrame 转换为 TimeSeries 而不拆分索引和值列的方法 有任何想法吗 谢谢 In 20 import pandas as pd In 21 import numpy as np In 22 dates
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • 在自定义 keras 层的调用函数中传递附加参数

    我创建了一个自定义 keras 层 目的是在推理过程中手动更改前一层的激活 以下是基本层 它只是将激活值乘以一个数字 import numpy as np from keras import backend as K from keras
  • 如何使 Django 自定义管理命令参数不再需要?

    我正在尝试在 django 中编写自定义管理命令 如下所示 class Command BaseCommand def add arguments self parser parser add argument delay type int

随机推荐