123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /* GdkPixbuf library - transformations
- *
- * Copyright (C) 2003 The Free Software Foundation
- *
- * Authors: Mark Crichton <crichton@gimp.org>
- * Miguel de Icaza <miguel@gnu.org>
- * Federico Mena-Quintero <federico@gimp.org>
- * Havoc Pennington <hp@redhat.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see <http://www.gnu.org/licenses/>.
- */
- #ifndef GDK_PIXBUF_TRANSFORM_H
- #define GDK_PIXBUF_TRANSFORM_H
- #if defined(GDK_PIXBUF_DISABLE_SINGLE_INCLUDES) && !defined (GDK_PIXBUF_H_INSIDE) && !defined (GDK_PIXBUF_COMPILATION)
- #error "Only <gdk-pixbuf/gdk-pixbuf.h> can be included directly."
- #endif
- #include <glib.h>
- #include <gdk-pixbuf/gdk-pixbuf-core.h>
- G_BEGIN_DECLS
- /* Scaling */
- /**
- * GdkInterpType:
- * @GDK_INTERP_NEAREST: Nearest neighbor sampling; this is the fastest
- * and 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 PostScript
- * image operator without any interpolation enabled. Each pixel is
- * rendered as a tiny parallelogram of solid color, the edges of which
- * are implemented with antialiasing. It resembles nearest neighbor for
- * enlargement, and bilinear for reduction.
- * @GDK_INTERP_BILINEAR: Best quality/speed balance; use this mode by
- * default. Bilinear interpolation. For enlargement, it is
- * equivalent to point-sampling the ideal bilinear-interpolated image.
- * For reduction, it is equivalent to laying down small tiles and
- * integrating over the coverage area.
- * @GDK_INTERP_HYPER: This is the slowest and highest quality
- * reconstruction function. It is derived from the hyperbolic filters in
- * Wolberg's "Digital Image Warping", and is formally defined as the
- * hyperbolic-filter sampling the ideal hyperbolic-filter interpolated
- * image (the filter is designed to be idempotent for 1:1 pixel mapping).
- *
- * 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>
- * Cubic filtering is missing from the list; hyperbolic
- * interpolation is just as fast and results in higher quality.
- * </note>
- */
- typedef enum {
- GDK_INTERP_NEAREST,
- GDK_INTERP_TILES,
- GDK_INTERP_BILINEAR,
- GDK_INTERP_HYPER
- } GdkInterpType;
- /**
- * GdkPixbufRotation:
- * @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.
- *
- * 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.
- */
- typedef enum {
- GDK_PIXBUF_ROTATE_NONE = 0,
- GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE = 90,
- GDK_PIXBUF_ROTATE_UPSIDEDOWN = 180,
- GDK_PIXBUF_ROTATE_CLOCKWISE = 270
- } GdkPixbufRotation;
- void gdk_pixbuf_scale (const GdkPixbuf *src,
- GdkPixbuf *dest,
- int dest_x,
- int dest_y,
- int dest_width,
- int dest_height,
- double offset_x,
- double offset_y,
- double scale_x,
- double scale_y,
- GdkInterpType interp_type);
- void gdk_pixbuf_composite (const GdkPixbuf *src,
- GdkPixbuf *dest,
- int dest_x,
- int dest_y,
- int dest_width,
- int dest_height,
- double offset_x,
- double offset_y,
- double scale_x,
- double scale_y,
- GdkInterpType interp_type,
- int overall_alpha);
- void gdk_pixbuf_composite_color (const GdkPixbuf *src,
- GdkPixbuf *dest,
- int dest_x,
- int dest_y,
- int dest_width,
- int dest_height,
- double offset_x,
- double offset_y,
- double scale_x,
- double scale_y,
- GdkInterpType interp_type,
- int overall_alpha,
- int check_x,
- int check_y,
- int check_size,
- guint32 color1,
- guint32 color2);
- GdkPixbuf *gdk_pixbuf_scale_simple (const GdkPixbuf *src,
- int dest_width,
- int dest_height,
- GdkInterpType interp_type);
- GdkPixbuf *gdk_pixbuf_composite_color_simple (const GdkPixbuf *src,
- int dest_width,
- int dest_height,
- GdkInterpType interp_type,
- int overall_alpha,
- int check_size,
- guint32 color1,
- guint32 color2);
- GdkPixbuf *gdk_pixbuf_rotate_simple (const GdkPixbuf *src,
- GdkPixbufRotation angle);
- GdkPixbuf *gdk_pixbuf_flip (const GdkPixbuf *src,
- gboolean horizontal);
-
- G_END_DECLS
- #endif /* GDK_PIXBUF_TRANSFORM_H */
|