首页 > 编程语言 >Python 的 PIL库——Image.new() 的使用说明,制作icon图标

Python 的 PIL库——Image.new() 的使用说明,制作icon图标

时间:2024-09-29 16:03:07浏览次数:7  
标签:PIL img Python Image mask 图像 new paste

Image 包 中的 new() 方法:

新建一个图片对象,设置参数有:图片的模式,图片的尺寸,图片的颜色(不填写颜色的时候,其默认值为0,即 黑色)
返回:一个图片对象,即 <class 'PIL.Image.Image'>

【语法格式:】

Image.new( mode, size, color )

 

【参数说明:】

  • mode:图片的模式。"1", "CMYK", "F", "HSV", "I", "L", "LAB", "P", "RGB", "RGBA", "RGBX", "YCbCr"
  • size:一个含有图片 宽,高 的元组;图片的尺寸(width, height)
  • color:图片的颜色;其默认值为0,即 黑色;
特别情况:当设置图片的 mode 为 ‘RGBA’ 时,如果不填 color 参数的话,图片是 透明底!
即以下方法,建立的图片对象为 透明底!如果添加文字后,保存为 png 格式,你会得到一张透明底的文字图片!需要绘制透明底图的时,你会需要的。
Image.new('RGBA', (800, 400))

 

【使用方法:】例如: 创建一个 RGB 模式,宽800、高400,白色的图片

  1. 导入 PIL 库里的 Image 包
  2. 使用 Image 包中的 new() 方法,给定参数:图片模式,图片的尺寸(width, height) ,图片的颜色
  3. 查看图片
from PIL import Image
img = Image.new('RGB', (800, 400), "white")
img.show()

 

出处:https://zhuanlan.zhihu.com/p/585399599

=======================================================================================

制作icon图标的Python3教程

在开发软件或网站时,我们经常需要为应用程序或网站设计专属的icon图标。Python3中有许多库可以帮助我们制作icon图标,其中最流行的是Pillow库。Pillow库是Python Imaging Library (PIL)的继承版本,提供了丰富的图像处理功能,包括创建、编辑和保存图像文件的功能。

在本教程中,我们将使用Pillow库来制作一个简单的icon图标,并将其保存为.ico格式的文件。

安装Pillow库

首先,我们需要安装Pillow库。可以使用以下命令通过pip安装Pillow库:

pip install Pillow
 

制作icon图标

接下来,我们将编写Python脚本来制作一个简单的icon图标。下面是一个示例代码:

from PIL import Image

# 创建一个新的图像对象
icon = Image.new('RGBA', (128, 128), (255, 255, 255, 0))

# 保存图像为.ico格式的文件,也可以自定义图片格式,如jpg,png,gif等
icon.save('icon.ico')
 

在上面的示例代码中,我们首先导入了Image类,然后创建了一个大小为128x128像素的RGBA格式的图像对象,并将其保存为.ico格式的文件。

注意:默认保存的ico文件是16x16大小的

运行代码

将以上代码保存为make_icon.py文件,并在命令行中执行以下命令来生成icon图标文件:

python make_icon.py

运行成功后,将在当前目录下生成一个名为icon.ico的图标文件。

总结

通过本教程,我们学习了如何使用Python3中的Pillow库来制作一个简单的icon图标,并将其保存为.ico格式的文件。Pillow库提供了丰富的图像处理功能,可以帮助我们轻松创建和编辑图像文件。希望本教程能帮助你快速制作专属的icon图标,提升应用程序或网站的用户体验。

参考文献

  • Pillow官方文档: [

通过本教程,你可以学会如何使用Python3中的Pillow库来制作icon图标,并将其保存为.ico格式的文件。希望能够帮助你快速制作专属的icon图标,提升应用程序或网站的用户体验。

 

出处:https://blog.51cto.com/u_16213434/11047037

=======================================================================================

 python 创建图片文件 image.new()

python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足够用了的。

Image.new

Image.new()方法,顾名思义,是用来new一个新的图像,具体参数如下:

Image.new(mode, size, color=0)
  • mode:模式,通常用"RGB"这种模式,如果需要采用其他格式,可以参考博文: PIL的mode参数
  • size:生成的图像大小
  • color:生成图像的颜色,默认为0,即黑色。
    举个栗子:
from PIL import Image
import matplotlib.pyplot as plt

img = Image.new("RGB",(32,32),(255,255,255))
plt.imshow(img)
 

生成的图片如下:

image python 写文件 python image.new_元组

 

另外,颜色参数的输入还可以用英文单词表示,或者十六进制的颜色码:

img_red = Image.new("RGB",(32,32),"red")
img_green = Image.new("RGB",(32,32),"#00FF00")
plt.subplot(1,2,1)
plt.imshow(img_red)
plt.subplot(1,2,2)
plt.imshow(img_green)
plt.show()

 

 

image python 写文件 python image.new_python_02

paste方法

paste,中文就是粘贴的意思,所以该方法就是将paste方法中,传入的图像粘贴在原图像上。

img.paste(im, box=None, mask=None)
 

定义1:im.paste(image,box)

含义1:将一张图粘贴到另一张图像上。变量box或者是一个给定左上角的2元组,或者是定义了左,上,右和下像素坐标的4元组,或者为空(与(0,0)一样)。如果给定4元组,被粘贴的图像的尺寸必须与区域尺寸一样。
如果模式不匹配,被粘贴的图像将被转换为当前图像的模式。

举个栗子:

from PIL import Image
import matplotlib.pyplot as plt
img = Image.new("RGB",(100,100))
img_small = Image.new("RGB",(20,20),"red")
img.paste(img_small,(20,20))
plt.imshow(img)
plt.show()
 

这里的

img.paste(img_small,(20,20))
 

相当于

img.paste(img_small,(20,20,40,40))
 

image python 写文件 python image.new_计算机视觉_03

 

将红色的图,粘贴到了黑色图(20,20,40,40)位置

image python 写文件 python image.new_Image_04

定义2:im.paste(color,box)

含义2:它与定义1一样,但是它使用同一种颜色填充变量box对应的区域。对于单通道图像,变量colour为单个颜色值;对于多通道,则为一个元组。
栗子2:

img = Image.new("RGB",(100,100))
img.paste("red",(10,10,30,30))
plt.imshow(img)
plt.show()
 

image python 写文件 python image.new_Image_05

image python 写文件 python image.new_计算机视觉_06

 

注:

  • 对于多通道的图像,如果变量color只给定一个数值,将只会应用于图像的第一个通道。如果是“RGB”模式的图像,将应用于红色通道。
  • 这里的坐标不能简写,必须写全,不然程序只知道paste图像右上角的位置,而不知道范围。

定义3:im.paste(image,box, mask)

含义3:与定义1一样,但是它使用变量mask对应的模板图像来填充所对应的区域。可以使用模式为“1”、“L”或者“RGBA”的图像作为模板图像。模板图像的尺寸必须与变量image对应的图像尺寸一致。 如果变量mask对应图像的值为255,则模板图像的值直接被拷贝过来;如果变量mask对应图像的值为0,则保持当前图像的原始值。变量mask对应图像的其他值,将对两张图像的值进行透明融合。
注意:如果变量image对应的为“RGBA”图像,即粘贴的图像模式为“RGBA”,则alpha通道被忽略。用户可以使用同样的图像作为原图像和模板图像。

栗子3:

img = Image.new("RGB",(100,100))
img_mask = Image.new('1',(20,20))
img_mask.paste("white",(10,10,15,15))
img_small = Image.new("RGB",(20,20),"red")
img.paste(img_small,(30,30),img_mask)
plt.imshow(img)
plt.show()
 

image python 写文件 python image.new_image python 写文件_07

image python 写文件 python image.new_Image_08

mask图像为:

image python 写文件 python image.new_元组_09

 

注:mask掩膜,即提取感兴趣区域进行处理,mask图像需要和被粘贴的图像大小相同,mask图像中黑色的部分会保留原数据,白色部分为感兴趣区域,会把被paste图像的对应区域的数据paste到目标图像上。

换句话说,利用mask,首先将被paste图像先与mask图像“相乘”,规定0为黑色,1为白色,再将“乘积”paste到目标图像上。

如上图,原本被paste的图像大小是20*20的,利用mask后,只有原被粘贴图像上(10,10,15,15)范围的元素被paste到目标图像上。

定义4:im.paste(colour,box, mask)

含义4:与定义3一样,只是使用变量colour对应的单色来填充区域。
栗子4:

img = Image.new("RGB",(100,100))
img_mask = Image.new('1',(20,20))
img_mask.paste("white",(10,10,15,15))
img.paste("blue",(30,30),img_mask)
plt.imshow(img)
plt.show()
 

image python 写文件 python image.new_image python 写文件_07

image python 写文件 python image.new_元组_11

 

=======================================================================================

出处:https://blog.51cto.com/u_16213566/7370604

标签:PIL,img,Python,Image,mask,图像,new,paste
From: https://www.cnblogs.com/mq0036/p/18440191

相关文章

  • 计算机专业毕设选题推荐-基于大数据的豆瓣图书数据分析【python-爬虫-大数据定制】
    ......
  • Python基于自定义方法的排序
    Python基于自定义方法的排序在Python中,排序是一个常见的任务,它可以帮助我们根据特定的规则对数据结构(如列表)中的元素进行排序。Python的内置排序方法,如列表的sort()函数和内置函数sorted(),提供了非常灵活的排序机制,特别是通过key参数,我们可以指定一个自定义的函数来决定排序的顺......
  • 基于python+flask框架的社区防疫物资统计分析系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球公共卫生事件的频发,社区作为疫情防控的第一线,其防疫物资的有效管理与分配显得尤为重要。传统的物资管理模式往往存在信息不对称、......
  • 基于python+flask框架的山西省残疾人就业服务平台的设计与实现(开题+程序+论文) 计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会文明的进步与残疾人权益保障政策的不断完善,山西省作为华夏文明的重要发祥地,其残疾人事业的发展日益受到社会各界的关注。然而,当前......
  • 基于python+flask框架的商厦会员管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着商业竞争的日益激烈,商厦作为集购物、休闲、娱乐为一体的综合性商业体,其管理效率与顾客服务体验成为决定其竞争力的关键因素。传统的人......
  • 基于python+flask框架的少儿编程网站的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,编程教育在全球范围内日益受到重视,尤其是在基础教育阶段。少儿编程作为培养学生逻辑思维、问题解决能力和创新能力......
  • 听我的!开展Python副业接单,你一定要去尝试的方向!
    前言上班打工不给力,打工人需要PlanB,敢问当代年轻人谁没动过搞副业的念头呢?ChatGPT的横空出世,更是让担心饭碗不保的年轻人把搞副业提上了日程。在哪个城市搞副业最卷?副业在网上炒的火热,实际上能不能挣到钱?哪个副业才是能月入过万的“财富密码”?每两个年轻人中,就有一人做过......
  • 【python】进制转换
    defbinary_to_octal(binary_str):decimal=int(binary_str,2)returnoct(decimal)[2:]#去掉'0o'前缀defbinary_to_decimal(binary_str):returnint(binary_str,2)defbinary_to_hexadecimal(binary_str):decimal=int(binary_str,2......
  • Python更换下载源:提升包安装速度的实用指南
    Python更换下载源:提升包安装速度的实用指南Python作为一门广泛使用的编程语言,其强大的生态系统和丰富的第三方库是吸引众多开发者的关键因素之一。然而,在使用pip安装这些第三方库时,由于网络延迟、官方源服务器负载等原因,下载速度可能会变得非常缓慢,尤其是在某些地理位置偏远的地......
  • Python 设计模式之工厂模式:灵活构建对象的利器
    在软件开发中,设计模式是解决常见问题的通用方案,能够提高代码的可维护性、可扩展性和可读性。其中,工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,将对象的创建和使用分离,使得代码更加灵活和可维护。在Python中,工厂模式同样有着广泛的应用。本文将深入探讨Python......