首页 > 编程语言 >python图像处理库

python图像处理库

时间:2023-05-02 21:46:41浏览次数:33  
标签:python Image gif 图像处理 im open tell 图片

pillow是图像处理的python第三方库,可以对图片进行加载、显示、保存、剪切、黏贴、分离、合并等操作。

一种题目是在图片中逆序或隐藏其他格式的文件,需要用到pillow库的Image类的open、save、getpixel、putpixel等方法-。
另一种题目是在GIF图片中分离或合并多个帧,需要用到pillow库的Image类的seek、tell、show等方法,或者ImageSequence模块的Iterator方法。
还有一种题目是在图片中隐藏信息,需要用到pillow库的Image类的crop、paste、transpose等方法

 Pillow基本使用

新建一张图片
im = Image.new("RGBA", (width, height))

加载图片
im = Image.open('Mycat.jpg')
显示图片
im.show()
另存为其他格式
im.save("Mycat.png")
图片剪切 box = (x1, y1 ,x2, y2) #图片左上角是坐标原点,横轴为x,纵轴为y,x2>=x1,y2>=y1 im.crop(box)       #剪切出来的图片是各点划线所围的矩形 图片粘贴(一张图片覆盖到另一张图上面) im2 = Image.open("Mydog.jpg") im.paste(im2) #把im2贴到im上 处理gif im = Image.open("Mypig.gif") im.tell() #显示当前帧数 im.seek(1) #移动到指定帧 im.show() 读取像素的rgb im.getpixel((x, y))    #图片左上角是坐标原点,横轴为x,纵轴为y 修改像素的rgb im.putpixel((x, y), (0, 0, 0))    #rgb(0, 0, 0),黑色

 

取出GIF每一帧,合成为新的图片

gif把完整的图片细分成很多小的切片。

  

先取出gif的每一帧,存放在指定目录里

#!/usr/bin/env python3

from PIL import Image

gif = Image.open("glance.gif")
gif.save(f"frame/{gif.tell()}.png")
while True:
        gif.seek(gif.tell() + 1)
        gif.save(f"frame/{gif.tell()}.png")

得到201张,每张宽高为2*600的图片。  

  

新建一张图片,把每一帧依次覆盖在新的图片上。

#!/usr/bin/env python3

from PIL import Image

im = Image.new("RGBA", (402, 600))

w = 0
for i in range(201):
    gif = Image.open(str(i) + ".png")
    box = (w, 0, w+2, 600)
    im.paste(gif, box)
    w += 2
im.show()

 

标签:python,Image,gif,图像处理,im,open,tell,图片
From: https://www.cnblogs.com/jimmy-hwang/p/17368236.html

相关文章

  • Python数据库连接池DBUtils
    DBUtils是Python的一个用于实现数据库连接池的模块。安装pip3instal1dbutilspip3instal1pymysql 此连接池有两种连接模式:模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程再次使用。当线程终止时,连接自动关闭。......
  • python字符串转驼峰
    importredefto_camel_case(x):"""转驼峰法命名"""returnre.sub('_([a-zA-Z])',lambdam:(m.group(1).upper()),x)defto_upper_camel_case(x):"""转大驼峰法命名"""s=re.sub(�......
  • python 获取系统的信息
    importplatformdefTestPlatform():print("----------OperationSystem--------------------------")#获取Python版本printplatform.python_version()#获取操作系统可执行程序的结构,,(’32bit’,‘WindowsPE’)printplatform.architecture......
  • python设置环境变量在代码中
    以Linux平台为例:>>>importsys>>>sys.path'''['',#当前目录'/usr/local/python3/lib/python37.zip',#python标准库目录'/usr/local/python3/lib/python3.7','/usr/local/python3/lib/python3.7/lib-dynl......
  • python excel 操作
    7个库:xlrd库:从excel中读取数据,支持xls、xlsxxlwt库:对excel进行修改操作,不支持对xlsx格式的修改xlutils库:在xlw和xlrd中,对一个已存在的文件进行修改openpyxl:不支持xls,只支持.xlsx、.xlsm、.xltx、.xltm。可以通过TotalExcelConverter软件进行excel格式转换。软件下载连接:TotalE......
  • python轻量级性能工具-Locust
    python轻量级性能工具-Locust Locust基于python的协程机制,打破了线程进程的限制,可以能够在一台测试机上跑高并发性能测试基础1.快慢:衡量系统的处理效率:响应时间2.多少:衡量系统的处理能力:单位时间内能处理多少个事务(tps)性能测试根据测试需求最常见的分为下面三类......
  • Theano 中文文档 0.9 - 7.1.1 Python教程
    7.1.1Python教程译者:Python文档协作翻译小组,原文:Pythontutorial。本文以CCBY-NC-SA4.0协议发布,转载请保留作者署名和文章出处。Python文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。在本文档中,我们假设读者了解Python。如果你需要学习......
  • python轻量级性能工具-Locust
    Locust基于python的协程机制,打破了线程进程的限制,可以能够在一台测试机上跑高并发性能测试基础1.快慢:衡量系统的处理效率:响应时间2.多少:衡量系统的处理能力:单位时间内能处理多少个事务(tps)性能测试根据测试需求最常见的分为下面三类1负载测试loadtesting......
  • Python安装教程
    首先在浏览器上搜索网址www.python.org或者搜索python官网点进去。(1)(2)(3)有不同版本的安装包,根据自己的需求下载(4)(5)(6)(7)(8)这里可以自定义安装目录,建议不是c盘都可以(9)(10)(11)之后我们在命令行里看一下安装的python,在命令行里输入python或者是pyt......
  • python3 生成器表达式
    在Python3中,生成器表达式是一种语言结构,它可以快速地创建一个可迭代对象。生成器表达式类似于列表推导式,但使用圆括号而不是方括号,并且返回的是一个生成器对象而不是一个列表。在Python3中,生成器表达式有两种类型:生成器函数和生成器表达式。生成器函数:生成器函数是一种特......