- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Pillow使用Image篇的使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1
|
pip install pillow
|
Image.open(fp, mode ='r' ):打开图片文件,返回一个Image对象 。
1
2
|
from
PIL
import
Image
im
=
Image.
open
(path)
|
Image.alpha_composite(im1, im2):在im1对象上的透明层复合im2,返回一个Image对象 。
。
1
2
3
4
|
from
PIL
import
Image
im1
=
Image.
open
(path1)
im2
=
Image.
open
(path2)
im3
=
Image.alpha_composite(im1,im2)
|
Image.blend(im1, im2, alpha):在两个图片对象之间进行插值,返回一个Image对象 。
如果alpha为0.0,则返回第一个图像的副本。如果alpha为1.0,则返回第二个图像的副本,基本的算法如下:
1
|
out
=
image1
*
(
1.0
-
alpha )
+
image2
*
alpha
|
Image.eval(image, *args):将函数应用于给定图像的中每一个像素。请注意,该函数对每个可能的像素值都进行一次评估,因此您不能使用随机组件或其他生成器。返回一个Image对象 。
。
1
2
3
4
5
|
from
PIL
import
Image
def
func(a):
return
a
im1
=
Image.
open
(path1)
img
=
Image.
eval
(img1,func,
1
)
|
Image.merge(mode, bands):将一组单波段图像合并成为一个多波段图像。返回一个Image对象 。
Image.new(mode, size, color=0):根据模式、大小和颜色创建一个新的Image对象。烦会一个Image对象 。
1
2
3
4
5
6
7
8
9
10
|
from
PIL
import
Image
# 单个整数值
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
# 元组
img
=
Image.new(
"RGBA"
,(
1024
,
768
),(
215
,
0
,
0
)
# ImageColor
from
PIL
import
ImageColor
color
=
ImageColor.getrgb(
"#FF0000"
)
img
=
Image.new(
"RGBA"
,(
1024
,
768
),color)
img.show()
|
从上面代码运行结果显示是一个红色,1024*768的图像 。
alpha_composite(im, dest=(0,0), source=(0,0)):在Image对象中符合im,效果与类方法alpha_composite相似。无返回值 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
img_copy
=
img.copy()
|
crop(box=None):返回此图像的一个矩形区域,为一个Image对象 。
1
2
3
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
img_copy
=
img.crop(box
=
(
0
,
0
,
500
,
500
))
|
draft(mode, size):配置图像文件加载器,以便返回尽可能接近给定模式和大小的图像版本,无返回值 。
filter(filter):使用给定的过滤器过滤此图像,返回一个Image对象 。
getbands():获取此图像中每个波段名称的元组。返回一个tuple 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.getbands()
# ('R', 'G', 'B', 'A')
|
getbbox():计算图像中非零区域的边界框,返回一个tuple 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.getbbox()
# (0, 0, 1024, 768)
|
getcolors(maxcolors=256):返回此图像中使用的颜色列表,返回一个计算与像素元组组成的元组列表 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.getcolors()
# [(786432, (215, 0, 0, 0))]
|
getdata(band=None):以包含像素值的序列对象的形式返回此图像的内容。返回一个可迭代对象.
1
2
3
4
5
6
7
8
9
10
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
for
item
in
img.getdata():
print
item
# 打印结果:
(
215
,
0
,
0
,
0
)
(
215
,
0
,
0
,
0
)
(
215
,
0
,
0
,
0
)
...
|
getextrema():获取每个波段的最小和最大像素值。对于单波段图像,返回一个长度为2的元组。对与多波段图像,每个波段包含一个2元组.
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.getextrema()
# ((215, 215), (0, 0), (0, 0), (0, 0))
|
getpalette():返回图像的调色板,返回一个list对象。如果没有调色板,则返回None 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.getpalette()
# None
|
getpixel(xy):返回给定位置的像素值,返回一个tuple 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.getpixel((
500
,
500
))
# (215, 0, 0, 0)
|
histogram(mask=None, extrema=None):返回图像的直方图。直方图以像素计数列表的形式返回,返回一个列表.
paste(im, box=None, mask=None):将im图像粘贴到此图像上面。无返回值 。
1
2
3
4
5
6
7
|
import
os
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img1
=
Image.
open
(path1)
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
img1.paste(img)
img1.show()
|
putdata(data, scale=1.0, offset=0.0):将像素数据复制到此图像上面。从图像左上角开始,直到图像或序列结束,无返回值。比例和偏移值用于调整序列值:pixel = value * scale + offset.
1
2
3
4
5
6
7
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
img_c
=
Image.new(
"RGBA"
,(
1024
,
768
),
-
100
)
img.putdata(img_c.getdata())
img.show()
|
putpalette(data, rawmode='RGB'):附加一个调色板到这个图像。图像的模式必须是P或者L。返回一个Image对象 。
1
2
3
4
5
6
7
|
from
PIL
import
Image
img
=
Image.new(
"P"
,(
1024
,
768
),
215
)
img_c
=
Image.new(
"P"
,(
1024
,
768
),
-
100
)
img_c.putpalette(img.getpalette())
img_c.show()
|
quantize(colors=256, method=None, kmeans=0, palette=None):将图像转换为具有指定数量的颜色的P模式图像,返回一个Image对象 。
1
2
3
4
5
6
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
img_q
=
img.quantize(colors
=
256
,method
=
2
)
print
img_q
# <PIL.Image.Image image mode=P size=1024x768 at 0x2BF7E80>
|
resize(size, resample=0, box=None):返回此图像的调整大小后的副本。返回一个Image对象 。
1
2
3
4
5
6
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
img_r
=
img.resize(size
=
(
500
,
500
))
print
img_r
# <PIL.Image.Image image mode=RGBA size=500x500 at 0x37A6E80>
|
rotate(angle, resample=0, expand=0, ceter=None, translate=None):旋转图像,并返回旋转后的图像副本。返回Image对象 。
1
2
3
4
5
6
7
8
|
import
os
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img1
=
Image.
open
(path1)
img_r
=
img1.rotate(
45
,Image.BICUBIC)
img_r.show()
|
可以看到,图像已经逆时针旋转了45度 。
save(fp, format=None, **params):保存图像到给定的文件名下。如果没有指定格式,则可以使用文件扩展名来确定要使用的格式。无返回值 。
1
2
3
4
5
6
7
8
|
import
os
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img1
=
Image.
open
(path1)
img_r
=
img1.rotate(
45
,Image.BICUBIC)
img_r.save(os.path.join(os.getcwd(),
"rotate.png"
))
|
seek(frame):在这个序列文件中寻找给定的帧。如果您在序列结束之外寻找方法,则会 引发EOFError异常。当序列文件被打开时,库会自动寻找0帧。无返回值 。
show(title=None, command=None):显示这个图像,此方法主要用于调试目的。无返回值 。
split():将图像分割成单独的波段。该方法从图像中返回一个单独的图像的元组。例如,拆分“RGB”图像会创建三个新图像,每个图像都包含原始波段(红色,绿色,蓝色)之一的副本。返回一个tuple 。
1
2
3
4
5
6
7
|
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img1
=
Image.
open
(path1)
data
=
img1.split()
print
data
# (<PIL.Image.Image image mode=L size=3500x3500 at 0x2DEC438>, <PIL.Image.Image image mode=L size=3500x3500 at 0x2DEC860>, <PIL.Image.Image image mode=L size=3500x3500 at 0x2DEC898>, <PIL.Image.Image image mode=L size=3500x3500 at 0x2DEC8D0>)
|
getchannel(channel):返回包含源图像的单个通道的图像。返回L模式的图像,返回一个Image对象 。
1
2
3
4
5
6
7
8
|
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img1
=
Image.
open
(path1)
im
=
img1.getchannel(
0
)
或者:
im
=
img1.getchannel(
"R"
)
|
tell():获取当前的帧号。返回int 。
thumbnail(size, resample=3):将此图像制作成缩略图。该方法修改图像以包含其本身的缩略图版本,不大于给定尺寸。无返回值 。
1
2
3
4
5
6
7
|
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img1
=
Image.
open
(path1)
img1.thumbnail(size
=
(
500
,
500
),resample
=
Image.BICUBIC)
print
img1
# <PIL.PngImagePlugin.PngImageFile image mode=RGBA size=500x500 at 0x311C3C8>
|
tobitmap(name='image'):返回转换为X11位图的图像。此方法只使用于模式为1的图像,返回一个str 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
from
PIL
import
Image
img
=
Image.new(
"1"
,(
1024
,
768
),
215
)
data
=
img.tobitmap(name
=
'abc'
)
print
data
# 结果如下:
"""
#define abc_width 1024
#define abc_height 768
static char abc_bits[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
...
};
"""
|
tobytes(encoder_name='raw', *args):以图像作为字节对象返回。为一个str对象 。
transpose(method):旋转或翻转图像,返回旋转或翻转后的图像副本,一个Image对象 。
1
2
3
4
5
6
7
|
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img1
=
Image.
open
(path1)
im
=
img1.transpose(Image.FLIP_LEFT_RIGHT)
im.show()
|
可以看出图像已经翻转了 。
close():关闭文件指针 。
filename:源文件的文件名或路径。只有通过open方法构建的图像对象才具有此属性 。
1
2
3
4
5
6
7
|
import
os
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img
=
Image.
open
(path1)
print
img.filename
# 、/aaa/bbb/ccc/23.png
|
format:源文件的图片格式。对于由库自身创建的图像,此属性值为None 。
1
2
3
4
5
6
7
8
9
10
|
import
os
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img
=
Image.
open
(path1)
print
img.
format
# PNG
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.
format
# None
|
mode:图像模式。这是一个字符串,指定图像使用的像素格式.
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.mode
# RGBA
|
size:图像大小,以像素为单位。大小以长度为2的元组(宽度,高度)给出。类型tuple 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.size
# (1024, 768)
|
width:图像宽度,以像素为单位。类型int 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.width
# 1024
|
height:图像高度,以像素为单位。类型int 。
1
2
3
4
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.height
# 768
|
palette:调色板表。如果模式为P,这应该是ImagePalette类的一个实例。否则为None 。
1
2
3
4
5
6
7
|
from
PIL
import
Image
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.palette
# None
img
=
Image.new(
"P"
,(
1024
,
768
),
215
)
print
img.palette
# <PIL.ImagePalette.ImagePalette object at 0x0000000002EF9828>
|
info:保存与图像相关的数据的字典。这个字典被文件处理程序用来传递从文件读取的各种非图像信息.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import
os
from
PIL
import
Image
path1
=
os.path.join(os.getcwd(),
"23.png"
)
img
=
Image.
open
(path1)
print
img.info
# 结果如下:
'''
{
'chromaticity': (0.31269, 0.32899, 0.63999, 0.33001, 0.3, 0.6, 0.15, 0.05999),
'icc_profile': 'xxxx/...',
'dpi': (300, 300)
}
'''
img
=
Image.new(
"RGBA"
,(
1024
,
768
),
215
)
print
img.info
# {}
|
Pillow支持的模式表 。
。
模式 | 说明 |
---|---|
1 | 1位像素,黑白,每字节一个像素存储 |
L | 8位像素,黑白 |
P | 8位像素,使用调色板映射到任何其他模式 |
RGB | 3x8位像素,真彩色 |
RGBA | 4×8位像素,带透明度掩模的真彩色 |
CMYK | 4x8位像素,分色 |
YCbCr | 3x8位像素,彩色视频格式 |
LAB | 3×8位像素,L * a * b颜色空间 |
HSV | 3x8位像素,色调,饱和度,值颜色空间 |
I | 32位有符号整数像素 |
F | 32位浮点像素 |
。
更多关于Image的操作:http://pillow.readthedocs.io/en/latest/reference/Image.html 。
到此这篇关于Pillow使用Image篇的使用的文章就介绍到这了,更多相关Pillow Image篇内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/y472360651/article/details/79287371 。
最后此篇关于Pillow使用Image篇的使用的文章就讲到这里了,如果你想了解更多关于Pillow使用Image篇的使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
当我调用 png.Decode(imageFile) 时,它返回类型 image.Image。但我找不到将其转换为 image.NRGBA 或 image.RGBA 的记录方式,我可以在其上调用 At
image/jpeg 和 image/png 包有 Decode 和 Encode 函数,可以读取和写入 jpeg 和 png 图像,但 image/gif 包没有 - 只有 Decode 和 Dec
我正在尝试从一系列任意的非调色板图像创建动画 GIF。为了创建调色板图像,我需要以某种方式想出一个调色板。 // RGBA, etc. images from somewhere else var f
我在今年夏天的空闲时间使用 Go 镜像包进行一些练习。 package main import ( "os" "image" "image/png" "image/co
关闭。这个问题需要debugging details .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 Improve this question 今天
我正在尝试在 TilePane 中列出图像。当我尝试创建图像 new ImageView("address"); 时出现错误,地址如下: "file:D:/Chrysanthemum.jpeg/" 以
我有一个用于为画廊选择图像的表单,我希望允许用户仅选择 jpg、gif 和 png 图像格式。 现在,为了测试,我将图像的扩展名更改为 .bmp,例如“image1.bmp”,当我在输入文件中单击以选
我有创建图像的代码:(m_img 是 javafx.scene.image.Image) Image m_img = new Image("file:" + p_Fil.getAbsoluteFile
假设我有一个这样的 8 位灰度图像: var pixels []byte = ... width := 100 height := 100 如何将其转换为实现 image.Image 的东西? 最佳答
这段代码是我在localhost:8088 URL上的索引/主页的一部分,如果我想将用户发送到url localhost:8088/image/1,我应该写href='image/{{$image->
我正在尝试对图像进行简单的裁剪。这是代码 from PIL.Image import Image def get_image_half(image, half="upper"): if hal
我在这个问题上花了一整天,但在堆栈溢出中没有看到答案! 我试过了但是没用: >> pil_image = Image.frombytes('RGBA', wand_image.size, wa
所以,我是那些以始终使用最新版本的浏览器而自豪的人之一(当然 Internet Explorer 除外 - 我说的不是那个浏览器)。 我遇到了 this awesome CSS3 website详细介
如果 image_tag 无法从 url 加载图像,我想呈现默认图像: 因此,如果 image_tag 无法从 url 加载图像: 然后呈现默认值: 这将生成结果 HTML: 关于image -
我正在创建一个类似横幅的组件,并将图像设置为组件的背景,但我无法让它工作。我尝试了网上发布的不同建议,但没有成功,目前我不确定我的错误是否在 react 代码中,或者是 webpack 没有正确加载文
如何解决 Dart 中的这种歧义错误。 import 'dart:io'; import 'package:flutter/material.dart'; import 'package:camera
Center( child: CachedNetworkImage( imageUrl: "http:/ sosme link he
设置 www.website.com/sds/(index.htm) 以便鼠标悬停在不同位置时显示图像。 出于某种原因,当您将鼠标悬停在蓝色气球上时,图像 2.jpg 和 3.jpg(在蓝色气球上来回
社交网络在共享 URL 时可以很好地从网站中提取标题和描述,但对于图像,仍然需要创建自定义元标记:property="og:image" name="twitter:image" itemprop="
我正在尝试写一个简短的,它将读取一个 PNG 文件,并将一个 channel 与另一个 channel (R,G,B) 交换作为可能的选择。 但是,我无法找到如何从 image.At(x,y) 返回的
我是一名优秀的程序员,十分优秀!