in reply to Combination of Gtk2 and Imlib2

Imlib2 does know anything of Gtk2, so you will have to make Imlib2 return something that Gtk2 (or Image::Base::Gtk2::Gdk::Drawable) understands.

It seems that Image::Base::Gtk2::Gdk::Image only thinks about "drawing" on an image, pixel by pixel or line by line, and don't have a way to draw a bitmap or JPEG buffer. Its documentation says so.

Image::Base::Gtk2::Gdk::Pixbuf can ->load from a file or ->load_string from a memory buffer. So I think the best approach would be to make Imlib2 return a JPEG buffer of the thumbnail and then use that with Image::Base::Gtk2::Gdk::Pixbuf.

Is there a reason you are using Image::Base at all instead of talking to Gtk2 yourself?

Replies are listed 'Best First'.
Re^2: Combination of Gtk2 and Imlib2
by Schnuck (Novice) on Apr 27, 2020 at 16:51 UTC
    Thank you for your reply.
    There is a reason I'm trying to make Image::Base load the jpeg and not Gtk2.
    Displaying several thumbnails on a canvas is very slow with the image loading abilities of Gtk2.
    Image::Base has GTk2 parts and Imlib2 parts, so I thought they would offer some kind of connection between them.

    Perhaps it would be better to just use the Imlib2-module with the Gtk-module?
    I don't know. The Image::Base part may be unnecessary or even a bad idea.

    Greetings

      I thought about it for a while and realized it would be a good idea to find out where the time is lost during the display of the images as thumbnails.
      I used Time::HiRes to find out.

      I am actually loading jpeg data from a tar archive. I have to convert this to a Pixpuf, because Gtk2-Canvas needs a pixbuf to show the data.
      The conversion function into a pixbuf consumes the majority (~70%) of the time.

      This may be a hint that this won't be faster using Imlib2?