# Image::Info::BMP - phpMan

## 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.

