Skip to content

Image codecs

All modules / imgcodecs

Animationclass

imgcodecs_flags

haveImageReaderfunction

Checks if the specified image file can be decoded by OpenCV.

haveImageWriterfunction

Checks if the specified image file or specified file extension can be encoded by OpenCV.

ImageMetadataTypeclass

Native enum entries for image metadata type. Pass an entry to enum-typed arguments or its .value to numeric arguments.

imcountfunction

Returns the number of images inside the given file

imdecodefunction

Reads an image from a buffer in memory.

imdecodeanimationfunction

Loads frames from an animated image buffer into an Animation structure.

imdecodemultifunction

Reads a multi-page image from a buffer in memory.

imdecodeWithMetadatafunction

Reads an image from a memory buffer and extracts associated metadata.

imencodefunction

Encodes an image into a memory buffer.

imencodeanimationfunction

Encodes an Animation to a memory buffer.

imencodemultifunction

Encodes array of images into a memory buffer.

imencodeWithMetadatafunction

Encodes an image into a memory buffer.

imreadfunction

Loads an image from a file.

imread1function

Loads an image from a file.

imreadanimationfunction

example: samples/cpp/tutorial_code/imgcodecs/animations.cpp

ImreadModesclass

Imread flags

imreadmultifunction

Loads a multi-page image from a file.

imreadmulti1function

Loads images of a multi-page image from a file.

imreadWithMetadatafunction

Reads an image from a file along with associated metadata.

imwritefunction

Saves an image to a specified file.

imwriteanimationfunction

Saves an Animation to a specified file.

ImwriteBMPCompressionFlagsclass

Imwrite BMP specific values for IMWRITE_BMP_COMPRESSION parameter key.

ImwriteEXRCompressionFlagsclass

Native enum entries for imwrite exrcompression flags. Pass an entry to enum-typed arguments or its .value to numeric arguments.

ImwriteEXRTypeFlagsclass

Native enum entries for imwrite exrtype flags. Pass an entry to enum-typed arguments or its .value to numeric arguments.

ImwriteFlagsclass

ImwriteFlags: Imwrite flags

ImwriteGIFCompressionFlagsclass

Imwrite GIF specific values for IMWRITE_GIF_QUALITY parameter key, if larger than 3, then its related to the size of the color table.

ImwriteHDRCompressionFlagsclass

Imwrite HDR specific values for IMWRITE_HDR_COMPRESSION parameter key

ImwriteJPEGSamplingFactorParamsclass

Native enum entries for imwrite jpegsampling factor params. Pass an entry to enum-typed arguments or its .value to numeric arguments.

imwritemultifunction

Encode and save multiple images to a supported multi-page format in the virtual filesystem. Return whether encoding succeeded.

ImwritePAMFlagsclass

Imwrite PAM specific tupletype flags used to define the 'TUPLETYPE' field of a PAM file.

ImwritePNGFilterFlagsclass

Imwrite PNG specific values for IMWRITE_PNG_FILTER parameter key

ImwritePNGFlagsclass

Imwrite PNG specific flags used to tune the compression algorithm.

ImwriteTiffCompressionFlagsclass

Native enum entries for imwrite tiff compression flags. Pass an entry to enum-typed arguments or its .value to numeric arguments.

ImwriteTiffPredictorFlagsclass

Native enum entries for imwrite tiff predictor flags. Pass an entry to enum-typed arguments or its .value to numeric arguments.

ImwriteTiffResolutionUnitFlagsclass

Native enum entries for imwrite tiff resolution unit flags. Pass an entry to enum-typed arguments or its .value to numeric arguments.

ImwriteWEBPLosslessModeclass

Imwrite WEBP specific values for IMWRITE_WEBP_LOSSLESS_MODE parameter key.

imwriteWithMetadatafunction

Saves an image to a specified file with metadata

Constants

Use the named constant from cv. In particular, OpenCV 5 matrix type codes differ from OpenCV 4.

IMREAD_UNCHANGED

If set, return the loaded image as is (with alpha channel, otherwise it gets cropped). Ignore EXIF orientation.

IMREAD_GRAYSCALE

If set, always convert image to the single channel grayscale image (codec internal conversion).

IMREAD_COLOR_BGR

Same as IMREAD_COLOR_BGR.

IMREAD_COLOR

Same as IMREAD_COLOR_BGR.

IMREAD_ANYDEPTH

If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.

IMREAD_ANYCOLOR

If set, the image is read in any possible color format.

IMREAD_LOAD_GDAL

If set, use the gdal driver for loading the image.

IMREAD_REDUCED_GRAYSCALE_2

If set, always convert image to the single channel grayscale image and the image size reduced 1/2.

IMREAD_REDUCED_COLOR_2

If set, always convert image to the 3 channel BGR color image and the image size reduced 1/2.

IMREAD_REDUCED_GRAYSCALE_4

If set, always convert image to the single channel grayscale image and the image size reduced 1/4.

IMREAD_REDUCED_COLOR_4

If set, always convert image to the 3 channel BGR color image and the image size reduced 1/4.

IMREAD_REDUCED_GRAYSCALE_8

If set, always convert image to the single channel grayscale image and the image size reduced 1/8.

IMREAD_REDUCED_COLOR_8

If set, always convert image to the 3 channel BGR color image and the image size reduced 1/8.

IMREAD_IGNORE_ORIENTATION

If set, do not rotate the image according to EXIF's orientation flag.

IMREAD_COLOR_RGB

If set, always convert image to the 3 channel RGB color image.

IMWRITE_JPEG_QUALITY

For JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95.

IMWRITE_JPEG_PROGRESSIVE

Enable JPEG features, 0 or 1, default is False.

IMWRITE_JPEG_OPTIMIZE

Enable JPEG features, 0 or 1, default is False.

IMWRITE_JPEG_RST_INTERVAL

JPEG restart interval, 0 - 65535, default is 0 - no restart.

IMWRITE_JPEG_LUMA_QUALITY

Separate luma quality level, 0 - 100, default is -1 - don't use. If JPEG_LIB_VERSION < 70, Not supported.

IMWRITE_JPEG_CHROMA_QUALITY

Separate chroma quality level, 0 - 100, default is -1 - don't use. If JPEG_LIB_VERSION < 70, Not supported.

IMWRITE_JPEG_SAMPLING_FACTOR

For JPEG, set sampling factor. See cv::ImwriteJPEGSamplingFactorParams.

IMWRITE_PNG_COMPRESSION

For PNG, it can be the compression level from 0 to 9. A higher value means a smaller size and longer compression time. If specified, strategy is changed to IMWRITE_PNG_STRATEGY_DEFAULT (Z_DEFAULT_STRATEGY). Default value is 1 (best speed setting).

IMWRITE_PNG_STRATEGY

For PNG, One of cv::ImwritePNGFlags, default is IMWRITE_PNG_STRATEGY_RLE.

IMWRITE_PNG_BILEVEL

For PNG, Binary level PNG, 0 or 1, default is 0. For APNG, it is not supported.

IMWRITE_PNG_FILTER

For PNG, One of cv::ImwritePNGFilterFlags, default is IMWRITE_PNG_FILTER_SUB. For APNG, it is not supported.

IMWRITE_PNG_ZLIBBUFFER_SIZE

For PNG with libpng, sets the size of the internal zlib compression buffer in bytes, from 6 to 1048576(1024 KiB). Default is 8192(8 KiB). For normal use, 131072(128 KiB) or 262144(256 KiB) may be sufficient. If WITH_SPNG=ON, it is not supported. For APNG, it is not supported.

IMWRITE_PXM_BINARY

For PPM, PGM, or PBM, it can be a binary format flag, 0 or 1. Default value is 1.

IMWRITE_EXR_TYPE

48 * /, //!< override EXR storage type (FLOAT (FP32) is default)

IMWRITE_EXR_COMPRESSION

49 * /, //!< override EXR compression type (ZIP_COMPRESSION = 3 is default)

IMWRITE_EXR_DWA_COMPRESSION_LEVEL

50 * /, //!< override EXR DWA compression level (45 is default)

IMWRITE_WEBP_QUALITY

For WEBP, it can be a lossy quality from 1 to 100 (the higher is the better) for IMWRITE_WEBP_LOSSLESS_OFF. By default (without this parameter) or if quality > 100, IMWRITE_WEBP_LOSSLESS_ON is used instead.

IMWRITE_WEBP_LOSSLESS_MODE

For WEBP, it can be a lossless compression strategy. See cv::ImwriteWEBPLosslessMode. Default is IMWRITE_WEBP_LOSSLESS_OFF. For Animated WEBP, it is not supported.

IMWRITE_HDR_COMPRESSION

80 * /, //!< specify HDR compression

IMWRITE_PAM_TUPLETYPE

For PAM, sets the TUPLETYPE field to the corresponding string value that is defined for the format

IMWRITE_TIFF_RESUNIT

For TIFF, use to specify which DPI resolution unit to set. See ImwriteTiffResolutionUnitFlags. Default is IMWRITE_TIFF_RESOLUTION_UNIT_INCH.

IMWRITE_TIFF_XDPI

For TIFF, use to specify the X direction DPI

IMWRITE_TIFF_YDPI

For TIFF, use to specify the Y direction DPI

IMWRITE_TIFF_COMPRESSION

For TIFF, use to specify the image compression scheme. See cv::ImwriteTiffCompressionFlags. The compression scheme can be specified by this flag; the default is LZW compression, except for 32F depth where it is NONE

IMWRITE_TIFF_ROWSPERSTRIP

For TIFF, use to specify the number of rows per strip.

IMWRITE_TIFF_PREDICTOR

For TIFF, use to specify predictor. See cv::ImwriteTiffPredictorFlags. Default is IMWRITE_TIFF_PREDICTOR_HORIZONTAL .

IMWRITE_JPEG2000_COMPRESSION_X1000

For JPEG2000, use to specify the target compression rate (multiplied by 1000). The value can be from 0 to 1000. Default is 1000.

IMWRITE_AVIF_QUALITY

For AVIF, it can be a quality between 0 and 100 (the higher the better). Default is 95.

IMWRITE_AVIF_DEPTH

For AVIF, it can be 8, 10 or 12. If >8, it is stored/read as CV_16U. Default is 8.

IMWRITE_AVIF_SPEED

For AVIF, it is between 0 (slowest) and 10(fastest). Default is 9.

IMWRITE_JPEGXL_QUALITY

For JPEG XL, it can be a quality from 0 to 100 (the higher is the better). Default value is 95. If set, distance parameter is re-calicurated from quality level automatically. This parameter request libjxl v0.10 or later.

IMWRITE_JPEGXL_EFFORT

For JPEG XL, encoder effort/speed level without affecting decoding speed; it is between 1 (fastest) and 10 (slowest). Default is 7.

IMWRITE_JPEGXL_DISTANCE

For JPEG XL, distance level for lossy compression: target max butteraugli distance, lower = higher quality, 0 = lossless; range: 0 .. 25. Default is 1.

IMWRITE_JPEGXL_DECODING_SPEED

For JPEG XL, decoding speed tier for the provided options; minimum is 0 (slowest to decode, best quality/density), and maximum is 4 (fastest to decode, at the cost of some quality/density). Default is 0.

IMWRITE_BMP_COMPRESSION

For BMP, use to specify compress parameter for 32bpp image. Default is IMWRITE_BMP_COMPRESSION_BITFIELDS. See cv::ImwriteBMPCompressionFlags.

IMWRITE_GIF_LOOP

Not functional since 4.12.0. Replaced by cv::Animation::loop_count.

IMWRITE_GIF_SPEED

Not functional since 4.12.0. Replaced by cv::Animation::durations.

IMWRITE_GIF_QUALITY

For GIF, it can be a quality from 1 to 8. Default is 2. See cv::ImwriteGifCompressionFlags.

IMWRITE_GIF_DITHER

For GIF, it can be a quality from -1(most dither) to 3(no dither). Default is 0.

IMWRITE_GIF_TRANSPARENCY

For GIF, the alpha channel lower than this will be set to transparent. Default is 1.

IMWRITE_GIF_COLORTABLE

For GIF, 0 means global color table is used, 1 means local color table is used. Default is 0.

IMWRITE_JPEG_SAMPLING_FACTOR_411

IMWRITE_JPEG_SAMPLING_FACTOR_411: 4x1,1x1,1x1

IMWRITE_JPEG_SAMPLING_FACTOR_420

2x2,1x1,1x1(Default)

IMWRITE_JPEG_SAMPLING_FACTOR_422

IMWRITE_JPEG_SAMPLING_FACTOR_422: 2x1,1x1,1x1

IMWRITE_JPEG_SAMPLING_FACTOR_440

IMWRITE_JPEG_SAMPLING_FACTOR_440: 1x2,1x1,1x1

IMWRITE_JPEG_SAMPLING_FACTOR_444

1x1,1x1,1x1(No subsampling)

IMWRITE_TIFF_COMPRESSION_NONE

IMWRITE_TIFF_COMPRESSION_NONE: dump mode

IMWRITE_TIFF_COMPRESSION_CCITTRLE

CCITT modified Huffman RLE

IMWRITE_TIFF_COMPRESSION_CCITTFAX3

CCITT Group 3 fax encoding

IMWRITE_TIFF_COMPRESSION_CCITT_T4

CCITT T.4 (TIFF 6 name)

IMWRITE_TIFF_COMPRESSION_CCITTFAX4

CCITT Group 4 fax encoding

IMWRITE_TIFF_COMPRESSION_CCITT_T6

CCITT T.6 (TIFF 6 name)

IMWRITE_TIFF_COMPRESSION_LZW

Lempel-Ziv & Welch

IMWRITE_TIFF_COMPRESSION_OJPEG

IMWRITE_TIFF_COMPRESSION_OJPEG: !6.0 JPEG

IMWRITE_TIFF_COMPRESSION_JPEG

%JPEG DCT compression

IMWRITE_TIFF_COMPRESSION_T85

!TIFF/FX T.85 JBIG compression

IMWRITE_TIFF_COMPRESSION_T43

!TIFF/FX T.43 colour by layered JBIG compression

IMWRITE_TIFF_COMPRESSION_NEXT

IMWRITE_TIFF_COMPRESSION_NEXT: NeXT 2-bit RLE

IMWRITE_TIFF_COMPRESSION_CCITTRLEW

#1 w/ word alignment

IMWRITE_TIFF_COMPRESSION_PACKBITS

IMWRITE_TIFF_COMPRESSION_PACKBITS: Macintosh RLE

IMWRITE_TIFF_COMPRESSION_THUNDERSCAN

ThunderScan RLE

IMWRITE_TIFF_COMPRESSION_IT8CTPAD

IT8 CT w/padding

IMWRITE_TIFF_COMPRESSION_IT8LW

IT8 Linework RLE

IMWRITE_TIFF_COMPRESSION_IT8MP

IT8 Monochrome picture

IMWRITE_TIFF_COMPRESSION_IT8BL

IT8 Binary line art

IMWRITE_TIFF_COMPRESSION_PIXARFILM

Pixar companded 10bit LZW

IMWRITE_TIFF_COMPRESSION_PIXARLOG

Pixar companded 11bit ZIP

IMWRITE_TIFF_COMPRESSION_DEFLATE

Deflate compression, legacy tag

IMWRITE_TIFF_COMPRESSION_ADOBE_DEFLATE

Deflate compression, as recognized by Adobe

IMWRITE_TIFF_COMPRESSION_DCS

Kodak DCS encoding

IMWRITE_TIFF_COMPRESSION_JBIG

IMWRITE_TIFF_COMPRESSION_JBIG: ISO JBIG

IMWRITE_TIFF_COMPRESSION_SGILOG

SGI Log Luminance RLE

IMWRITE_TIFF_COMPRESSION_SGILOG24

SGI Log 24-bit packed

IMWRITE_TIFF_COMPRESSION_JP2000

Leadtools JPEG2000

IMWRITE_TIFF_COMPRESSION_LERC
IMWRITE_TIFF_COMPRESSION_LZMA

IMWRITE_TIFF_COMPRESSION_LZMA: LZMA2

IMWRITE_TIFF_COMPRESSION_ZSTD

ZSTD: WARNING not registered in Adobe-maintained registry

IMWRITE_TIFF_COMPRESSION_WEBP

WEBP: WARNING not registered in Adobe-maintained registry

IMWRITE_TIFF_COMPRESSION_JXL

JPEGXL: WARNING not registered in Adobe-maintained registry

IMWRITE_TIFF_PREDICTOR_NONE

no prediction scheme used

IMWRITE_TIFF_PREDICTOR_HORIZONTAL

horizontal differencing

IMWRITE_TIFF_PREDICTOR_FLOATINGPOINT

floating point predictor

IMWRITE_TIFF_RESOLUTION_UNIT_NONE

no absolute unit of measurement.

IMWRITE_TIFF_RESOLUTION_UNIT_INCH

IMWRITE_TIFF_RESOLUTION_UNIT_INCH: inch

IMWRITE_TIFF_RESOLUTION_UNIT_CENTIMETER

IMWRITE_TIFF_RESOLUTION_UNIT_CENTIMETER: centimeter

IMWRITE_EXR_TYPE_HALF

store as HALF (FP16)

IMWRITE_EXR_TYPE_FLOAT

store as FP32 (default)

IMWRITE_EXR_COMPRESSION_NO

IMWRITE_EXR_COMPRESSION_NO: no compression

IMWRITE_EXR_COMPRESSION_RLE

run length encoding

IMWRITE_EXR_COMPRESSION_ZIPS

zlib compression, one scan line at a time

IMWRITE_EXR_COMPRESSION_ZIP

zlib compression, in blocks of 16 scan lines

IMWRITE_EXR_COMPRESSION_PIZ

piz-based wavelet compression

IMWRITE_EXR_COMPRESSION_PXR24

lossy 24-bit float compression

IMWRITE_EXR_COMPRESSION_B44

lossy 4-by-4 pixel block compression, fixed compression rate

IMWRITE_EXR_COMPRESSION_B44A

lossy 4-by-4 pixel block compression, flat fields are compressed more

IMWRITE_EXR_COMPRESSION_DWAA

lossy DCT based compression, in blocks of 32 scanlines. More efficient for partial buffer access. Supported since OpenEXR 2.2.0.

IMWRITE_EXR_COMPRESSION_DWAB

lossy DCT based compression, in blocks of 256 scanlines. More efficient space wise and faster to decode full frames than DWAA_COMPRESSION. Supported since OpenEXR 2.2.0.

IMWRITE_PNG_STRATEGY_DEFAULT

Use this value for normal data.

IMWRITE_PNG_STRATEGY_FILTERED

Use this value for data produced by a filter (or predictor).Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better.

IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY

Use this value to force Huffman encoding only (no string match).

IMWRITE_PNG_STRATEGY_RLE

Use this value to limit match distances to one (run-length encoding).

IMWRITE_PNG_STRATEGY_FIXED

Using this value prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications.

IMWRITE_PNG_FILTER_NONE

This is a combination of IMWRITE_PNG_FILTER_NONE, IMWRITE_PNG_FILTER_SUB, and IMWRITE_PNG_FILTER_UP, typically used for faster compression.

IMWRITE_PNG_FILTER_SUB

This is a combination of IMWRITE_PNG_FILTER_NONE, IMWRITE_PNG_FILTER_SUB, and IMWRITE_PNG_FILTER_UP, typically used for faster compression.

IMWRITE_PNG_FILTER_UP

This is a combination of IMWRITE_PNG_FILTER_NONE, IMWRITE_PNG_FILTER_SUB, and IMWRITE_PNG_FILTER_UP, typically used for faster compression.

IMWRITE_PNG_FILTER_AVG

This combines all available filters (NONE, SUB, UP, AVG, and PAETH), which will attempt to apply all of them for the best possible compression.

IMWRITE_PNG_FILTER_PAETH

This combines all available filters (NONE, SUB, UP, AVG, and PAETH), which will attempt to apply all of them for the best possible compression.

IMWRITE_PNG_FAST_FILTERS

This combines all available filters (NONE, SUB, UP, AVG, and PAETH), which will attempt to apply all of them for the best possible compression.

IMWRITE_PNG_ALL_FILTERS

This combines all available filters (NONE, SUB, UP, AVG, and PAETH), which will attempt to apply all of them for the best possible compression.

IMWRITE_PAM_FORMAT_NULL

imwrite pam format null constant (0), defined by OpenCV for cv.

IMWRITE_PAM_FORMAT_BLACKANDWHITE

imwrite pam format blackandwhite constant (1), defined by OpenCV for cv.

IMWRITE_PAM_FORMAT_GRAYSCALE

imwrite pam format grayscale constant (2), defined by OpenCV for cv.

IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA

imwrite pam format grayscale alpha constant (3), defined by OpenCV for cv.

IMWRITE_PAM_FORMAT_RGB

imwrite pam format rgb constant (4), defined by OpenCV for cv.

IMWRITE_PAM_FORMAT_RGB_ALPHA

imwrite pam format rgb alpha constant (5), defined by OpenCV for cv.

IMWRITE_WEBP_LOSSLESS_OFF

Lossy compression mode. Uses IMWRITE_WEBP_QUALITY to control compression. (Default)

IMWRITE_WEBP_LOSSLESS_ON

Standard lossless compression. May modify or discard RGB values of fully transparent pixels to improve compression ratio.

IMWRITE_WEBP_LOSSLESS_PRESERVE_COLOR

Exact lossless compression. Preserves all RGB data even for pixels with 0 alpha (equivalent to WebP's exact flag).

IMWRITE_HDR_COMPRESSION_NONE

imwrite hdr compression none constant (0), defined by OpenCV for cv.

IMWRITE_HDR_COMPRESSION_RLE

imwrite hdr compression rle constant (1), defined by OpenCV for cv.

IMWRITE_BMP_COMPRESSION_RGB

Use BI_RGB. OpenCV v4.12.0 or before supports to encode with this compression only.

IMWRITE_BMP_COMPRESSION_BITFIELDS

Use BI_BITFIELDS. OpenCV v4.13.0 or later can support to encode with this compression. (only for 32 BPP images)

IMWRITE_GIF_FAST_NO_DITHER

imwrite gif fast no dither constant (1), defined by OpenCV for cv.

IMWRITE_GIF_FAST_FLOYD_DITHER

imwrite gif fast floyd dither constant (2), defined by OpenCV for cv.

IMWRITE_GIF_COLORTABLE_SIZE_8

imwrite gif colortable size 8 constant (3), defined by OpenCV for cv.

IMWRITE_GIF_COLORTABLE_SIZE_16

imwrite gif colortable size 16 constant (4), defined by OpenCV for cv.

IMWRITE_GIF_COLORTABLE_SIZE_32

imwrite gif colortable size 32 constant (5), defined by OpenCV for cv.

IMWRITE_GIF_COLORTABLE_SIZE_64

imwrite gif colortable size 64 constant (6), defined by OpenCV for cv.

IMWRITE_GIF_COLORTABLE_SIZE_128

imwrite gif colortable size 128 constant (7), defined by OpenCV for cv.

IMWRITE_GIF_COLORTABLE_SIZE_256

imwrite gif colortable size 256 constant (8), defined by OpenCV for cv.

IMAGE_METADATA_UNKNOWN

Used when metadata type is unrecognized or not set

IMAGE_METADATA_EXIF

EXIF metadata (e.g., camera info, GPS, orientation)

IMAGE_METADATA_XMP

XMP metadata (eXtensible Metadata Platform - Adobe format)

IMAGE_METADATA_ICCP

ICC Profile (color profile for color management)

IMAGE_METADATA_CICP

cICP Profile (video signal type)

IMAGE_METADATA_MAX

Highest valid index (usually used for bounds checking)