Alpha transparency in Image.

View: New views
3 Messages — Rating Filter:   Alert me  

Alpha transparency in Image.

by Germán Diago :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

 I want to set the alpha transparency of an image with this code, but
 it does nothing.
 Could anyone tell me the correct way to do it?


 bool on_expose_event(GdkEventExpose* ev)
        {
                img_->add_alpha(false, 0, 0, 0);
                img_->composite(img_, 0, 0, img_->get_width(),
img_->get_height()
                                                        , 0, 0, 1, 1,
Gdk::INTERP_BILINEAR, 10);
                img_->render_to_drawable(get_window(),
get_style()->get_black_gc(),
                0, 0, 100, 80, img_->get_width(), img_->get_height(),
// draw the
 whole image (from 0,0 to the full width,height) at 100,80 in the
 window
                Gdk::RGB_DITHER_NONE, 0, 0);
                return true;
        }

  img_ is a Glib::RefPtr<Gdk::Pixbuf>.

 Thanks in advance.
_______________________________________________
gtkmm-list mailing list
gtkmm-list@...
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Re: Alpha transparency in Image.

by John Hobbs-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I don't know about that way, but you could try doing it with Cairo,
thats worked for me before.

bool on_expose_event (GdkEventExpose * ev) {
    Glib::RefPtr<Gdk::Window> window = drawOnMe.get_window();
    if(window) {
        Cairo::RefPtr<Cairo::Context> context = window->create_cairo_context();
        // Shoehorn the image data into the context, then render it.
        Cairo::RefPtr<Cairo::ImageSurface> image_surface =
Cairo::ImageSurface::create (Cairo::FORMAT_RGB24, img_->get_width(),
img_->get_height());
        Cairo::RefPtr<Cairo::Context> image_context =
Cairo::Context::create(image_surface);
        Gdk::Cairo::set_source_pixbuf (image_context, img_, 0.0, 0.0);
        image_context->paint();
        context->set_source(image_surface, 0.0, 0.0);
        context->paint_with_alpha(0.5);  // The param here is your alpha value
    }
}

- John Hobbs

On Thu, Aug 14, 2008 at 2:21 PM, Germán Diago <germandiago@...> wrote:

>  I want to set the alpha transparency of an image with this code, but
>  it does nothing.
>  Could anyone tell me the correct way to do it?
>
>
>  bool on_expose_event(GdkEventExpose* ev)
>        {
>                img_->add_alpha(false, 0, 0, 0);
>                img_->composite(img_, 0, 0, img_->get_width(),
> img_->get_height()
>                                                        , 0, 0, 1, 1,
> Gdk::INTERP_BILINEAR, 10);
>                img_->render_to_drawable(get_window(),
> get_style()->get_black_gc(),
>                0, 0, 100, 80, img_->get_width(), img_->get_height(),
> // draw the
>  whole image (from 0,0 to the full width,height) at 100,80 in the
>  window
>                Gdk::RGB_DITHER_NONE, 0, 0);
>                return true;
>        }
>
>  img_ is a Glib::RefPtr<Gdk::Pixbuf>.
>
>  Thanks in advance.
> _______________________________________________
> gtkmm-list mailing list
> gtkmm-list@...
> http://mail.gnome.org/mailman/listinfo/gtkmm-list
>
_______________________________________________
gtkmm-list mailing list
gtkmm-list@...
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Re: Alpha transparency in Image.

by Germán Diago :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2008/8/14 John Hobbs <john@...>:

> I don't know about that way, but you could try doing it with Cairo,
> thats worked for me before.
>
> bool on_expose_event (GdkEventExpose * ev) {
>    Glib::RefPtr<Gdk::Window> window = drawOnMe.get_window();
>    if(window) {
>        Cairo::RefPtr<Cairo::Context> context = window->create_cairo_context();
>        // Shoehorn the image data into the context, then render it.
>        Cairo::RefPtr<Cairo::ImageSurface> image_surface =
> Cairo::ImageSurface::create (Cairo::FORMAT_RGB24, img_->get_width(),
> img_->get_height());
>        Cairo::RefPtr<Cairo::Context> image_context =
> Cairo::Context::create(image_surface);
>        Gdk::Cairo::set_source_pixbuf (image_context, img_, 0.0, 0.0);
>        image_context->paint();
>        context->set_source(image_surface, 0.0, 0.0);
>        context->paint_with_alpha(0.5);  // The param here is your alpha value
>    }
> }
>
> - John Hobbs
>
> On Thu, Aug 14, 2008 at 2:21 PM, Germán Diago <germandiago@...> wrote:
>>  I want to set the alpha transparency of an image with this code, but
>>  it does nothing.
>>  Could anyone tell me the correct way to do it?
>>
>>
>>  bool on_expose_event(GdkEventExpose* ev)
>>        {
>>                img_->add_alpha(false, 0, 0, 0);
>>                img_->composite(img_, 0, 0, img_->get_width(),
>> img_->get_height()
>>                                                        , 0, 0, 1, 1,
>> Gdk::INTERP_BILINEAR, 10);
>>                img_->render_to_drawable(get_window(),
>> get_style()->get_black_gc(),
>>                0, 0, 100, 80, img_->get_width(), img_->get_height(),
>> // draw the
>>  whole image (from 0,0 to the full width,height) at 100,80 in the
>>  window
>>                Gdk::RGB_DITHER_NONE, 0, 0);
>>                return true;
>>        }
>>
>>  img_ is a Glib::RefPtr<Gdk::Pixbuf>.
>>
>>  Thanks in advance.
>> _______________________________________________
>> gtkmm-list mailing list
>> gtkmm-list@...
>> http://mail.gnome.org/mailman/listinfo/gtkmm-list
>>
> _______________________________________________
> gtkmm-list mailing list
> gtkmm-list@...
> http://mail.gnome.org/mailman/listinfo/gtkmm-list
>

Thank you very much. I'll try with that.
_______________________________________________
gtkmm-list mailing list
gtkmm-list@...
http://mail.gnome.org/mailman/listinfo/gtkmm-list
LightInTheBox - Buy quality products at wholesale price!