Re: Drawing a logo

Charles Doutriaux <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
The following does the trick for me:

void draw_logo(cairo_t *cr) {
   int w,h,wl,hl;
   float ratio = .075;
   float ws,hs,x,y;
   cairo_surface_t *logo;
   logo = 
cairo_image_surface_create_from_png("/lgm/cdat/Qt/Library/Frameworks/Python.framework/Versions/2.7/bin/UV-CDAT_logo_sites.png");
   wl=cairo_image_surface_get_width(logo);
   hl=cairo_image_surface_get_height(logo);
   w=cairo_image_surface_get_width(cairo_get_target(cr));
   h=cairo_image_surface_get_height(cairo_get_target(cr));
   fprintf(stderr,"ratio is: %f, %f, 
%f\n",ratio,(float)w*ratio,(float)h*ratio);
   x=(float)w*(1.-ratio);
   y= (float)h*(1.-ratio);
   cairo_rectangle(cr,x,y,(float)w*ratio,(float)h*ratio);
   cairo_clip(cr);
   hs = (float)h*ratio/(float)hl;
   ws=(float)w*ratio/(float)wl;
   cairo_scale(cr,ws,hs);
   cairo_set_source_surface(cr,logo,x/ws,y/hs);
   cairo_paint(cr);
}

C.

On 11/1/11 4:16 PM, Charles Doutriaux wrote:
> Hello,
>
> I am running into a "simple" problem and I can't seem to figure it out
> from the doc.
>
> I have a cairo_t cr on which I drew a bunch of things.
>
>
> Now I would like at the end to add a logo/stamp in the bottom right corner.
>
> I can't seem to be able to "scale" the logo down to the right size, the
> following code will draw the logo at the right place but if I put the
> scaling in the will only scale the "rectangle" down therefore still only
> showing about a 1/4 of the logo.
>
> Hope somebody can help!
>
> Thanks in advance,
>
> C.
>
> void draw_logo(cairo_t *cr) {
>     int w,h,wl,hl;
>     float ratio = .25;
>     cairo_surface_t *logo;
>     logo =
> cairo_image_surface_create_from_png("/lgm/cdat/Qt/Library/Frameworks/Python.framework/Versions/2.7/bin/UV-CDAT_logo_sites.png");
>     wl=cairo_image_surface_get_width(logo);
>     hl=cairo_image_surface_get_height(logo);
>     w=cairo_image_surface_get_width(cairo_get_target(cr));
>     h=cairo_image_surface_get_height(cairo_get_target(cr));
>     fprintf(stderr,"ratio is: %f, %f,
> %f\n",ratio,(float)w*ratio,(float)h*ratio);
>     //cairo_scale(cr,(float)w*ratio/(float)wl,(float)h*ratio/(float)hl);
>
> cairo_set_source_surface(cr,logo,(float)w*(1.-ratio),(float)h*(1.-ratio));
>
> cairo_rectangle(cr,(float)w*(1.-ratio),(float)h*(1.-ratio),(float)w*ratio,(float)h*ratio);
>     cairo_clip(cr);
>     cairo_paint(cr);
> }
>
>
>
> --
> cairo mailing list
> [email protected]
> http://lists.cairographics.org/mailman/listinfo/cairo

--
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.