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