The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Image::Base::Wx::Bitmap -- draw into a Wx::Bitmap

SYNOPSIS

 use Image::Base::Wx::Bitmap;
 my $image = Image::Base::Wx::Bitmap->new
                 (-wxbitmap => $wxbitmap);
 $image->line (0,0, 99,99, '#FF00FF');
 $image->rectangle (10,10, 20,15, 'white');

CLASS HIERARCHY

Image::Base::Wx::Bitmap is a subclass of Image::Base::Wx::DC,

    Image::Base
      Image::Base::Wx::DC
        Image::Base::Wx::Bitmap

DESCRIPTION

Image::Base::Wx::Bitmap extends Image::Base to draw into a Wx::Bitmap.

Wx::Bitmap is a platform-dependent colour image with a specified bits-per-pixel depth. The supported depths depend on the platform but include at least the screen depth and 1-bit monochrome.

Drawing is done with a wxMemoryDC as per the Image::Base::Wx::DC. This subclass adds file load and save for the Wx::Bitmap.

File Formats

The file formats supported in Wx 2.8 include the following, perhaps depending which supporting libraries it was built with.

    BMP      always available
    PNG
    JPEG
    GIF      load-only
    PCX
    PNM
    TIFF
    TGA      load-only
    IFF      load-only
    XPM
    ICO
    CUR
    ANI      load-only

load() detects the format, but a handler for the format must have been registered globally. All formats can be registered with

    Wx::InitAllImageHandlers();

This is suggested since otherwise load XPM seems to behave as an "ANY" which might trick the detection attempts. The Wx::Image handlers are used by Wx::Bitmap so registering desired formats there might be enough.

Colour Names

Colour names are anything recognised by Wx::Colour->new(), as described in "Colour Names" in Image::Base::Wx::DC.

FUNCTIONS

See "FUNCTIONS" in Image::Base for behaviour common to all Image-Base classes.

$image = Image::Base::Wx::Bitmap->new (key=>value,...)

Create and return a new image object. It can read a file,

    $image = Image::Base::Wx::Bitmap->new
               (-file => '/my/file/name.bmp');

Or create a new bitmap with width and height. The default -depth is the bits-per-pixel of the screen, or something else can be given.

    $image = Image::Base::Wx::Bitmap->new
                 (-width  => 200,
                  -height => 100,
                  -depth => 1);   # monochrome

Or a new image can be pointed at an existing Wx::Bitmap,

    my $wxbitmap = Wx::Bitmap->new (200, 100);
    my $image = Image::Base::Wx::Bitmap->new
                 (-wxbitmap => $wxbitmap);

Further parameters are applied per set (see "ATTRIBUTES" below).

ATTRIBUTES

-wxbitmap (Wx::Bitmap object)

The target bitmap object.

-dc (Wx::MemoryDC object)

The Wx::DC used to draw into the bitmap. A suitable DC is created for the bitmap automatically, but it can be set explicitly if desired.

-file_format (string, default undef)

The file format from the last load() and the format to use in save(). This is one of the wxBITMAP_TYPE_XXX names such as "PNG" or "JPEG".

-width (integer, read-only)
-height (integer, read-only)

The size of the bitmap, per $wxbitmap->GetWidth() and $wxbitmap->GetHeight(). Currently these are read-only. Can a bitmap be resized dynamically?

-depth (integer, read-only)

The number of bits per pixel in the bitmap, per $wxbitmap->GetDepth(). Currently this is read-only. Can a bitmap be reformatted dynamically?

BUGS

Wx circa 2.8.12 on Gtk prints g_log() warnings on attempting to load an unknown file format, including an empty file or garbage. This is apparently from attempting it as an XPM. Is that a Wx bug?

SEE ALSO

Wx, Image::Base, Image::Base::Wx::DC, Image::Base::Wx::Image

HOME PAGE

http://user42.tuxfamily.org/image-base-wx/index.html

LICENSE

Copyright 2012 Kevin Ryde

Image-Base-Wx is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

Image-Base-Wx is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Image-Base-Wx. If not, see <http://www.gnu.org/licenses/>.