---
name: "Image::Info::BMP"
section: "3pm"
platform: "linux"
package: "perl-image-info"
version: "1.45-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Image::Info::BMP"
---

# Image::Info::BMP(3pm)

Windows Device Independent Bitmap support for Image::Info

## NAME

Image::Info::BMP - Windows Device Independent Bitmap support for Image::Info

## SYNOPSIS

```
 use Image::Info qw(image_info dim);
 my $info = image_info("image.bmp");
 if (my $error = $info->{error}) {
     die "Can't parse image info: $error\n";
 }
 my $color = $info->{color_type};
 my($w, $h) = dim($info);
```

## DESCRIPTION

This module supplies the standard key names except for Gamma, Interlace, LastModificationTime, as well as:

- BMP\_ColorsImportant

  Specifies the number of color indexes that are required for displaying the bitmap. If this value is zero, all colors are required.

- BMP\_Origin

  If true the bitmap is a bottom-up DIB and its origin is the lower-left corner. Otherwise, the bitmap is a top-down DIB and its origin is the upper-left  corner.

- ColorPalette

  Reference to an array of all colors used. This key is only present if `"image_info"` is invoked as `"image_info($file, ColorPalette=>1)"`.

- ColorTableSize

  The number of colors the image uses. If 0 then this is a true color image. The number of colors *available* is 2 ^ **BitsPerSample**.

## METHODS

### process\_file()

```
        $info->process_file($source, $options);
```

Processes one file and sets the found info fields in the `$info` object.

## SEE ALSO

Image::Info

## NOTES

For more information about BMP see \<http://msdn.microsoft.com\>.

Random notes:

```
  warn if height is negative and compress is not RGB or BITFILEDS (0 or 3)
  ICO and CUR support?
  ### v5
  If bit depth is 0, it relies upon underlying JPG/PNG :-(
  Extra Information
    DWORD        bV5RedMask;
    DWORD        bV5GreenMask;
    DWORD        bV5BlueMask;
    DWORD        bV5AlphaMask;
    DWORD        bV5CSType;
    CIEXYZTRIPLE bV5EndPoints; #3*CIEXYZ #CIEXYZ = 3*FXPT2DOT30#FXPT2DOT30 = long
    DWORD        bV5GammaRed;
    DWORD        bV5GammaGreen;
    DWORD        bV5GammaBlue;
    DWORD        bV5Intent;
    DWORD        bV5ProfileData;
    DWORD        bV5ProfileSize;
```

## DIAGNOSTICS

- Size mismatch

  The image may be correct, but the filesize does not match the internally stored value.

## BUGS

The current implementation only functions on little-endian architectures. Consequently erroneous data concerning compression (including **file\_ext** and **file\_mime\_type**) may be reported.

## AUTHOR

Jerrad Pierce \<belg4mit@mit.edu\>/\<webmaster@pthbb.org\>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
