Python PIL | Image.frombuffer() method (original) (raw)
Last Updated : 07 Aug, 2019
PIL is the Python Imaging Library which provides the python interpreter with image editing capabilities. The Image
module provides a class with the same name which is used to represent a PIL image. The module also provides a number of factory functions, including functions to load images from files, and to create new images.
**PIL.Image.frombuffer()**
Creates an image memory referencing pixel data in a byte buffer.
Note that this function decodes pixel data only, not entire images. If you have an entire image file in a string, wrap it in a BytesIO object, and use open() to load it.
Syntax: PIL.Image.frombuffer(mode, size, data, decoder_name=’raw’, *args)
Parameters:
mode – The image mode. See: Modes
size – The image size.
data – A byte buffer containing raw data for the given mode.
decoder_name – What decoder to use.
args – Additional parameters for the given decoder. For the default encoder (“raw”), it’s recommended that you provide the full set of parameters:frombuffer(mode, size, data, "raw", mode, 0, 1)
Returns: An Image object.
Image Used:
from
PIL
import
Image
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
)
img2
=
list
(img.getdata())
print
(img2)
Output:
[48, 120, 102, 102, 44, 48, 120, 102, 102, 44, 48, 120, 102, 102, 44, 48]
Another Example: Here we use another image.
Image Used:
from
PIL
import
Image
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
)
img2
=
list
(img.getdata())
print
(img2)
Output:
[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]