User since
2006-06-11
15
Artikel
BenutzerIn
Hallo,
wie kann ich den mit
Perl die Farbwerte
der Bildschirm-Pixels
auslesen?
Danke im vorraus
und liebe Grüsse
rommi
User since
2006-07-10
2611
Artikel
BenutzerIn
Wichtig wäre auch zu wissen, ob die Pixel immer innerhalb des von deinem Programm belegten Desktopbreiches sein soll, oder auch außerhalb.
User since
2006-11-29
340
Artikel
BenutzerIn
Wenn du Windows benutzt sollte es mit Win32::GUI::DC funktionieren.
Das Modul wird mit Win32::GUI mit geliefert.
Hier mal ein Beispiel:
#!/usr/bin/perl
use strict;
use warnings 'all';
use Win32::GUI;
# create screen object
my $screen = Win32::GUI::DC -> new ("DISPLAY");
# get color of pixel at x, y
my($x, $y) = (100, 50);
my $color = $screen -> GetPixel ($x, $y);
# print out the color
printf("Color at %i, %i: 0x%X\n", $x, $y, $color);
MfG PerlProfi
User since
2006-07-10
2611
Artikel
BenutzerIn
Und mal ein Beispiel mit GTK Für rein X11-basierte Oberflächen könnte man sicher auch auch X11::Protocol gehen. Wie es mit TK oder WX ginge weiß ich so nicht.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use Gtk2 '-init';
my $posx=100;
my $posy=100;
my $pixbuf= Gtk2::Gdk::Pixbuf->new('rgb',0,8,1,1);
$pixbuf->get_from_drawable(Gtk2::Gdk::Screen->get_default()->get_root_window(),
undef, $posx, $posy, 0, 0, 1, 1);
my ($r,$g,$b)=unpack('C*', $pixbuf->get_pixels());
print "($r,$g,$b)\n";
\n\n
<!--EDIT|topeg|1167339184-->
Hallo topeg und PerlProfi,
danke für die schnellen Antworten. Betriebssystem ist
Windows 2000 Professional. Mit dem Modul Win32::GUI::DC
funzt es dann auch gleich, Danke!!
Wünsch euch viel Glück fürs neue Jahr
Ciao
rommmi