Python PIL Image.frombuffer()方法

Python PIL Image.frombuffer()方法

PIL是Python图像库,它为Python解释器提供了图像编辑功能。图像模块提供了一个同名的类,用来表示一个PIL图像。该模块还提供了一些工厂函数,包括从文件加载图像和创建新图像的函数。

PIL.Image.frombuffer()创建一个引用字节缓冲区中像素数据的图像存储器。

注意,这个函数只解码像素数据,而不是整个图像。如果你有一个字符串中的整个图像文件,请将其包裹在一个BytesIO对象中,并使用open()来加载它。

语法: PIL.Image.frombuffer(mode, size, data, decoder_name=’raw’, *args)

参数:
mode – 图像模式。见。模式
size – 图像大小。
data – 一个包含给定模式的原始数据的字节缓冲区。
decoder_name – 使用什么解码器。
args – 给定解码器的附加参数。对于默认的编码器(”raw”),建议你提供全套的参数: frombuffer(mode, size, data, “raw”, mode, 0, 1)

返回:一个图像对象。

使用的图片:
Python PIL Image.frombuffer()方法

# importing image object from PIL
from PIL import Image
  
# creating an image object
im = Image.open(r"C:\Users\System-Pc\Desktop\rose.jpg")
im1 = im.tobytes("xbm", "rgb")
img = Image.frombuffer("L", (4, 4), im1, 'raw', "L", 0, 1)
  
# creating list 
img2 = list(img.getdata())
print(img2)

输出:

[48, 120, 102, 102, 44, 48, 120, 102, 102, 44, 48, 120, 102, 102, 44, 48]

另一个例子:这里我们使用另一个图像。

使用的图片:
Python PIL Image.frombuffer()方法

# importing image object from PIL
from PIL import Image
   
# creating an image object
im = Image.open(r"C:\Users\System-Pc\Desktop\ellipse1.png")
im1 = im.tobytes("xbm", "rgb")
img = Image.frombuffer("L", (10, 10), im1, 'raw', "L", 0, 1)
  
# creating list 
img2 = list(img.getdata())
print(img2)

输出:

[48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 10, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56, 44, 48, 120, 56, 56]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程