Hello again.

I've converted the buffer to an RGBA array with 16-bits per channel. But
loading the blob still fails. Any other ideas?

Greets,
Luka

Dne 06.01.2009 (tor) ob 12:03 +0000 je jcup...@gmail.com zapisal(a):
> 2009/1/6 Luka Napotnik <luka.napot...@gmail.com>:
> > I'm trying to use GraphicsMagic (the successor of ImageMagick) to
> > manipulate a GdkPixbuf image buffer. The problem is that the program
> > segfaults, probably due to the raw nature of the buffer which the Magick
> > API doesn't handle very good.
> > I'm opening the image buffer with MagickReadImageBlob() and then apply
> > some filters.
> 
> libMagick (usually) expects images as RGBARGBARGBA, with 16 bits for
> each value. GdkPixbuf is always  RGBRGBRGB, or RGBARGBARGBA, with 8
> bits per value.
> 
> You will probably need to allocate a big chunk of memory and unpack
> your GdkPixbuf into that as 16-bit values, then call
> MagickReadImageBlob(). Going the other way, you'll need to build an
> empty GdkPixbuf (ie. one with memory allocated for it), then pack the
> libMagick buffer down into that from 16 to 8 bits.
> 
> Other image processing libraries are more flexible in how they can
> represent pixels and can skip these pack/unpack steps. It depends what
> kind of processing you want to perform and whether some other library
> also has what you need.
> 
> I help maintain vips:
> 
>   http://www.vips.ecs.soton.ac.uk
> 
> Which can do RGB or RGBA with 8 bit values, but of course might not
> have the particular filter you need.
> 
> John
-- 
lp,
Luka

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to