Re: getting color from gdk::pixbuf (probably a bug in Gdk::Pixbuf)
- From: doome <doome uhulinux hu>
- To: gtk-perl-list gnome org
- Cc: scott asofyet org
- Subject: Re: getting color from gdk::pixbuf (probably a bug in Gdk::Pixbuf)
- Date: Wed, 3 Mar 2004 08:15:47 +0100
Is it possible that the get_pixels function doesn't work?
The get_pixels function returns nothing, however the png image shows up
in the Gtk2::Image.
$pixbuf = Gtk2::Gdk::Pixbuf->new_from_file(foobar.png);
$image = Gtk2::Image->new_from_pixbuf($pixbuf);
$pixels = $pixbuf->get_pixels;
The $image shows up in the window, but the $pixels string is empty.
Using the latest stable releases: Glib2 1.022 Gtk2 1.023
On 02 Mar 2004 15:02:23 -0500
muppet <scott asofyet org> wrote:
On Tue, 2004-03-02 at 06:56, Domsodi Gergely wrote:
Hi!
I have a Gdk::Pixbuf (got it from a .png file) in a Gtk2::Image.
I want to get colors of specific pixels of this image, and give it
to a Gtk2::Gdk::Color so that I can draw with that color to a
Gtk2::Gdk::Pixmap.
How can I do this?
use $pixbuf->get_pixels to fetch the rgb image data as a packed
scalar, and then use unpack() or substr() to extract the pixels you
want. not very efficient for large pixbufs, but perl isn't meant for
bit-banging.
#
# warning, untested code, watch for falling bullshit
#
$pixels = $pixbuf->get_pixels;
# n_channels should be 3 for rgb data, and 4 if there is alpha data.
$depth = $pixbuf->get_n_channels;
$offset = $row * $pixbuf->get_rowstride + $col * $depth;
($r, $g, $b, $a) = unpack "C*",
substr $pixels, $offset, $depth;
# $a will be undefined if $depth is 3.
# $[rgb] will be on the range [0-255] --- bitshift them left by 8
# for use with a Gtk2::Gdk::Color (to put them in the range
# [0-65535]).
--
muppet <scott at asofyet dot org>
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
--
Domsodi Gergely / UHU-Linux
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]