scaling.sgml

来自「linux下电话本所依赖的一些图形库」· SGML 代码 · 共 237 行

SGML
237
字号
<!-- ##### SECTION Title ##### -->Scaling<!-- ##### SECTION Short_Description ##### -->Scaling pixbufs and scaling and compositing pixbufs<!-- ##### SECTION Long_Description ##### -->  <para>    The &gdk-pixbuf; contains functions to scale pixbufs, to scale    pixbufs and composite against an existing image, and to scale    pixbufs and composite against a solid color or checkerboard.    Compositing a checkerboard is a common way to show an image with    an alpha channel in image-viewing and editing software.  </para>  <para>    Since the full-featured functions (gdk_pixbuf_scale(),    gdk_pixbuf_composite(), and gdk_pixbuf_composite_color()) are    rather complex to use and have many arguments, two simple    convenience functions are provided, gdk_pixbuf_scale_simple() and    gdk_pixbuf_composite_color_simple() which create a new pixbuf of a    given size, scale an original image to fit, and then return the    new pixbuf.  </para>  <para>    The following example demonstrates handling an expose event by    rendering the appropriate area of a source image (which is scaled    to fit the widget) onto the widget's window.  The source image is    rendered against a checkerboard, which provides a visual    representation of the alpha channel if the image has one. If the    image doesn't have an alpha channel, calling    gdk_pixbuf_composite_color() function has exactly the same effect    as calling gdk_pixbuf_scale().  </para>  <example>  <title>Handling an expose event.</title>  <programlisting>gbooleanexpose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data){  GdkPixbuf *dest;  gdk_window_set_back_pixmap (widget->window, NULL, FALSE);    dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);  gdk_pixbuf_composite_color (pixbuf, dest,                              0, 0, event->area.width, event->area.height,                              -event->area.x, -event->area.y,                              (double) widget->allocation.width / gdk_pixbuf_get_width (pixbuf),                              (double) widget->allocation.height / gdk_pixbuf_get_height (pixbuf),                              GDK_INTERP_BILINEAR, 255,                              event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);  gdk_pixbuf_render_to_drawable (dest, widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],                                 0, 0, event->area.x, event->area.y,                                 event->area.width, event->area.height,                                 GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);    gdk_pixbuf_unref (dest);    return TRUE;}  </programlisting>  </example><!-- ##### SECTION See_Also ##### -->  <para>    <link linkend="gdk-GdkRGB">GdkRGB</link>.  </para><!-- ##### SECTION Stability_Level ##### --><!-- ##### ENUM GdkInterpType ##### -->  <para>    This enumeration describes the different interpolation modes that    can be used with the scaling functions. @GDK_INTERP_NEAREST is     the fastest scaling method, but has horrible quality when     scaling down. @GDK_INTERP_BILINEAR is the best choice if you     aren't sure what to choose, it has a good speed/quality balance.    <note>      <para>	Cubic filtering is missing from the list; hyperbolic	interpolation is just as fast and results in higher quality.      </para>    </note>  </para>@GDK_INTERP_NEAREST: Nearest neighbor sampling; this is the fastestand lowest quality mode. Quality is normally unacceptable when scaling down, but may be OK when scaling up.@GDK_INTERP_TILES: This is an accurate simulation of the PostScriptimage operator without any interpolation enabled.  Each pixel isrendered as a tiny parallelogram of solid color, the edges of whichare implemented with antialiasing.  It resembles nearest neighbor forenlargement, and bilinear for reduction.@GDK_INTERP_BILINEAR: Best quality/speed balance; use this mode bydefault. Bilinear interpolation.  For enlargement, it isequivalent to point-sampling the ideal bilinear-interpolated image.For reduction, it is equivalent to laying down small tiles andintegrating over the coverage area.@GDK_INTERP_HYPER: This is the slowest and highest qualityreconstruction function. It is derived from the hyperbolic filters inWolberg's "Digital Image Warping", and is formally defined as thehyperbolic-filter sampling the ideal hyperbolic-filter interpolatedimage (the filter is designed to be idempotent for 1:1 pixel mapping).<!-- ##### FUNCTION gdk_pixbuf_scale_simple ##### --><para></para>@src: @dest_width: @dest_height: @interp_type: @Returns: <!-- ##### FUNCTION gdk_pixbuf_scale ##### --><para></para>@src: @dest: @dest_x: @dest_y: @dest_width: @dest_height: @offset_x: @offset_y: @scale_x: @scale_y: @interp_type: <!-- ##### FUNCTION gdk_pixbuf_composite_color_simple ##### --><para></para>@src: @dest_width: @dest_height: @interp_type: @overall_alpha: @check_size: @color1: @color2: @Returns: <!--Local variables:mode: sgmlsgml-parent-document: ("../gdk-pixbuf.sgml" "book" "refsect2" "")End:--><!-- ##### FUNCTION gdk_pixbuf_composite ##### --><para></para>@src: @dest: @dest_x: @dest_y: @dest_width: @dest_height: @offset_x: @offset_y: @scale_x: @scale_y: @interp_type: @overall_alpha: <!-- ##### FUNCTION gdk_pixbuf_composite_color ##### --><para></para>@src: @dest: @dest_x: @dest_y: @dest_width: @dest_height: @offset_x: @offset_y: @scale_x: @scale_y: @interp_type: @overall_alpha: @check_x: @check_y: @check_size: @color1: @color2: <!-- ##### ENUM GdkPixbufRotation ##### --><para>The possible rotations which can be passed to gdk_pixbuf_rotate_simple().To make them easier to use, their numerical values are the actual degrees.</para>@GDK_PIXBUF_ROTATE_NONE: No rotation.@GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE: Rotate by 90 degrees.@GDK_PIXBUF_ROTATE_UPSIDEDOWN: Rotate by 180 degrees.@GDK_PIXBUF_ROTATE_CLOCKWISE: Rotate by 270 degrees.<!-- ##### FUNCTION gdk_pixbuf_rotate_simple ##### --><para></para>@src: @angle: @Returns: <!-- ##### FUNCTION gdk_pixbuf_flip ##### --><para></para>@src: @horizontal: @Returns: 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?