
Security News
Open Source CAI Framework Handles Pen Testing Tasks up to 3,600× Faster Than Humans
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Python 3.6+ interface to libheif library using CFFI
Note: currently only reading is supported.
pip install --upgrade pip
pip install pyheif
brew install libffi libheif
pip install git+https://github.com/carsales/pyheif.git
apt install libffi libheif-dev libde265-dev
or
yum install libffi libheif-devel libde265-devel
then
pip install git+https://github.com/carsales/pyheif.git
Sorry, not going to happen!
The pyheif.read(path_or_bytes)
function can be used to read the primary image of a HEIF encoded file. It can be passed any of the following:
pathlib.Path
path objectbytes
or bytearray
object containing HEIF content.read()
method that returns bytesIt returns a HeifImage
object.
import pyheif
# Using a file path:
heif_file = pyheif.read("IMG_7424.HEIC")
# Or using bytes directly:
heif_file = pyheif.read(open("IMG_7424.HEIC", "rb").read())
If your HEIF file contains an image that you would like to manipulate, you can do so using the Pillow Python library. You can convert a HeifImage
to a Pillow image like so:
from PIL import Image
import pyheif
heif_file = pyheif.read("IMG_7424.HEIC")
image = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data,
"raw",
heif_file.mode,
heif_file.stride,
)
Note: the mode
property is passed twice - once to the mode
argument of the frombytes
method, and again to the mode
argument of the raw
decoder.
You can now use any Pillow method to manipulate the file. Here's how to convert it to JPEG:
image.save("IMG_7424.jpg", "JPEG")
The pyheif.open_container(path_or_bytes)
function can be used to read the HEIF container from a HEIF encoded file. It takes the same parameter as pyheif.read()
It returns a HeifContainer
object.
The HeifImage
has the following properties:
mode
- the image mode, e.g. "RGB" or "RGBA"size
- the size of the image as a (width, height)
tuple of integersdata
- the raw decoded file data, as bytesmetadata
- a list of metadata dictionariescolor_profile
- a color profile dictionarystride
- the number of bytes in a row of decoded file databit_depth
- the number of bits in each component of a pixelThis is a HEIF image that has not been decoded. Calling the UndecodedHeifImage.load()
method will load the data and the object will become a HeifImage
The HeifContainer
has the following properties:
primary_image
- the HeifTopLevelImage
object of the primary image in the file.top_level_images
- a list of all HeifTopLevelImage
objects in the file.The HeifTopLevelImage
has the following properties:
id
- the id of the imageimage
- the UndecodedHeifImage
or HeifImage
object of the imageis_primary
- is this the primary image in the containerdepth_image
- the HeifDepthImage
if there is oneauxiliary_images
- a list of HeifAuxiliaryImage
objectsThe HeifDepthImage
has the following properties:
id
- the id of the imageimage
- the UndecodedHeifImage
or HeifImage
object of the imageThe HeifAuxiliaryImage
has the following properties:
id
- the id of the imageimage
- the UndecodedHeifImage
or HeifImage
object of the imagetype
- a string indicating the type of auxiliary imageFAQs
Python 3.6+ interface to libheif library
We found that pyheif demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.