首页 > 其他分享 >Pillow常用方法汇总

Pillow常用方法汇总

时间:2022-10-01 11:00:25浏览次数:50  
标签:常用 PIL Image 汇总 im import 图片 Pillow out

  • 打开图片
    打开一张图片是一个很快的操作,和图片的尺寸以及压缩方式无关,打开的时候只读取文件header来获取文件格式、模式、尺寸等信息
from PIL import Image
im = Image.open("hopper.ppm")

with open("hopper.ppm", "rb") as fp:
    im = Image.open(fp)

# read from binary data
import io
im = Image.open(io.BytesIO(buffer))

# read from url
from PIL import Image
from urllib.request import urlopen
url = "https://python-pillow.org/images/pillow-logo.png"
img = Image.open(urlopen(url))


  • 显示图片格式
>>> im.format
PPM
  • 图片尺寸
>>> im.size
(512,512)
  • 图片模式
>>> im.mode
# L for greyscale,RGB for true color images,CMYK for pre-press images
RGB
  • 展示图片
>>> im.show()
  • 保存图片
>>> im.save("hopper.jpg")
  • 裁切图片
    裁切需要使用到一个四元组\((left,up,right,bottom)\),图片的左上坐标是\((0,0)\)
box = (100, 100, 400, 400)
region = im.crop(box)
  • 将一张图片粘贴到另一张图片上
    此时被粘贴的图片需要大小和box吻合
region = region.transpose(Image.Transpose.ROTATE_180)
im.paste(region, box)
  • 改变RGB图像通道的位置
r, g, b = im.split()
im = Image.merge("RGB", (b, g, r))
  • 图片缩放,旋转
out = im.resize((128, 128))
out = im.rotate(45) # degrees counter-clockwise
out = im.transpose(Image.Transpose.FLIP_LEFT_RIGHT)
out = im.transpose(Image.Transpose.FLIP_TOP_BOTTOM)
out = im.transpose(Image.Transpose.ROTATE_90)
out = im.transpose(Image.Transpose.ROTATE_180)
out = im.transpose(Image.Transpose.ROTATE_270)
  • 图片模式转换
from PIL import Image

with Image.open("hopper.ppm") as im:
    im = im.convert("L")
  • 图片增强
from PIL import ImageFilter
out = im.filter(ImageFilter.DETAIL)

from PIL import ImageEnhance

enh = ImageEnhance.Contrast(im)
enh.enhance(1.3).show("30% more contrast")
  • 图片阵列操作
# multiply each pixel by 1.2
out = im.point(lambda i: i * 1.2)

# split the image into individual bands
source = im.split()

R, G, B = 0, 1, 2

# select regions where red is less than 100
mask = source[R].point(lambda i: i < 100 and 255)

# process the green band
out = source[G].point(lambda i: i * 0.7)

# paste the processed band back, but only where red was < 100
source[G].paste(out, None, mask)

# build a new multiband image
im = Image.merge(im.mode, source)
  • 动图操作
from PIL import Image

with Image.open("animation.gif") as im:
    im.seek(1)  # skip to the second frame

    try:
        while 1:
            im.seek(im.tell() + 1)
            # do something to im
    except EOFError:
        pass  # end of sequence

from PIL import ImageSequence
for frame in ImageSequence.Iterator(im):
    # ...do something to frame...

标签:常用,PIL,Image,汇总,im,import,图片,Pillow,out
From: https://www.cnblogs.com/eryoyo/p/16746900.html

相关文章

  • idea常用快捷键大全
    Idea常用快捷键大全,拿小本本记下来,忘记了可以方便查找。编写代码Ctrl+Shift+Enter,语句完成。“!”,否定完成,输入表达式时按“!”键。Ctrl+E,最近的文件。Ctrl+Shift+E,......
  • ALV :汇总,分类汇总(小计),排序,过滤
    货铺QQ群号:834508274下面开始干货部分……ALV标准功能汇总,分类汇总,排序,过滤这些功能除了可以直接使用它的标准功能按钮之外,你也可以在程序里设定,让ALV列表第一次显示出来就......
  • JdbcTemplate 常用方法
    JdbcTemplate常用方法update:实现增删改//update方法(增删改)@Overridepublicvoidadd(Usersuser){Stringsql="insertintousersval......
  • C语言中常用的英语单词
    学习编程不一定需要英语水平很高,能记住认识一些常用的英文单词也可以,有看不明白的文档资料也可以使用翻译工具,编写代码时大部分好用的IDE都是有代码提示的。本文主要介绍C......
  • 常用的conda命令
    创建一个虚拟环境:condacreate--name环境名[包名和指定的版本]  #[包名和指定的版本]可以省略,新建的环境默认安装C:\Users\username\anaconda3\envs文件夹下在硬......
  • macOS 上 常用的操作
    首先mac上若使用的是windows的键盘,那么需要把ctrl键,设置成cmd键,因为mac上大多数操作都是基于cmd键。1.将ctrl键,修改为cmd键,这样后复制、粘贴、剪切、全选等ctrl+n......
  • UN常用美制外螺纹尺寸,值得收藏!!!
    UN美制螺纹规范-外螺纹尺寸有哪些,UNC,UNF,UNS,NEF,UN......
  • 常用英制螺纹尺寸,值得收藏!!!
    以上是常用的英制螺纹尺寸精度,仅供参考......
  • 软件开发工具填空汇总
    第三代程序设计语言一般都是(过程化 )语言。进入二十一世纪以来,软件开发工具的发展有两个鲜明的特点,第一个特点是面向网络,另一个特点是(来源软件兴起和运用)。填空题171......
  • Windows常用快捷键
    Windows常用快捷键ctrl+c:复制ctrl+v:粘贴ctrl+a:全选ctrl+x:剪切ctrl+z:撤销ctrl+s:保存alt+F4:关闭窗口shift+delete:永久删除Windows键+R键:打开运行窗口运行窗口......