Thread Pixelfarbe von Display ermitteln... (7 answers)
Opened by rommi at 2008-08-10 22:27

MatthiasW
 2008-08-11 19:40
#113365 #113365
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Quote
GetPixel (x, y)

Return pixel value color at x, y or undef if error. For image with BPP <= 8 return palette index color. For image with BPP > 8 return color value. This color value can be an integer value or a [B,G,R,A] array.

Schonmal nachgesehen ob du nich ne Arrayreferenz bekommst?

edit:
Ansonsten kannste natürlich die einzelnen Werte noch aus dem integer holen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl

use strict;
use warnings;

use Win32::GUI;

my $screen = new Win32::GUI::DC("DISPLAY");
my $pixel = $screen -> GetPixel( 5, 5 );

print "PIXEL: $pixel\n";

my $r = ($pixel << 24) >> 24;
my $g = ($pixel << 16) >> 24;
my $b = ($pixel << 8) >> 24;
my $a = ($pixel ) >> 24;

print "R: $r\n";
print "G: $g\n";
print "B: $b\n";

Eventuell ist die Reihenfolge genau verkehrtherum, das hängt vom jeweiligen Prozessor ab, wie asphalt im perlboard ja bereits geschrieben hat.

edit2: Oh sehe grad das das Problem ja bereits gelöst is, naja egal.

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'

View full thread Pixelfarbe von Display ermitteln...