The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w
use strict;
use warnings;

#
#  Test with Win32::GUI
#

use FindBin();
use Win32::GUI();
use Win32::GUI::DIBitmap;

my $W = new Win32::GUI::Window (
    -title    => "Win32::GUI::DIBitmap test",
    -left     => 100,
    -top      => 100,
    -width    => 400,
    -height   => 400,
    -name     => "Window",
) or die "new Window";

my $dib = newFromFile Win32::GUI::DIBitmap ("$FindBin::Bin/zapotec.bmp")
	or die "newFromFile";

my $bcolor = $dib->HasBackgroundColor();
print "hascolor = $bcolor\n";

my $color = $dib->GetPixel(10,10);
print "Color = $color\n";

$dib->SetPixel(10, 10, 255);
$color = $dib->GetPixel(10,10);
print "Color = $color\n";

$dib = $dib->ConvertTo24Bits();
print "hascolor = $bcolor\n";

my @color = $dib->GetPixel(11,10);
print "Color = @color\n";

$dib->SetPixel(11, 10, 255, 0, 0);
@color = (0, 255, 0);
$dib->SetPixel(12, 10, @color);
@color = (0, 0, 255);
$dib->SetPixel(13, 10, \@color);

$W->Show();
Win32::GUI::Dialog();
exit(0);

sub Window_Paint {
	my $dc = shift;

    my ($width, $height) = ($W->GetClientRect)[2..3];

    $dib->StretchToDC($dc, 0, 0, $width, $height);

	$dc->Validate();
	return 1;
}