GdkMagick news (11/14/1999)



GdkMagick users:

The next release of GdkMagick, at version 0.6, is due for release before
December 1, 1999. This new version of GdkMagick will include the following new
features:

- Significantly enhanced API. Attached is the current version of gdk_magick.h,
which includes all public function definitions for the upcoming GdkMagick
release. This will hopefully be the last API change before GdkMagick moves into
BETA TEST before the end of the year.

- Improved routines for rendering an ImageMagick image region into a
GDK drawable, and for rendering a GDK image into an ImageMagick image.

- New functionality for rendering an ImageMagick image directly into a
GDK image, without the need for using GdkRGB. Instead, the ImageMagick color
quantization and dithering routines will be used to convert truecolor image
data into pseudocolor image data. These routines can save network traffic when
rendering into a GDK pixmap or window is not desired. Of course, the GdkRGB
rendering routines are still available for fast transfer from ImageMagick to a
GDK drawable.

- Hopefully, bugfixes related to library dependency ordering. If you are
interested, please test this next release when it becomes available to ensure
that all required libraries are found.

- The usual round of bugfixes

As soon as GdkMagick 0.6 becomes available, I will release MagiCapture 0.4.1.
This version of MagiCapture will not include any new features; it will just use
the GdkMagick 0.6 API. I plan to bugfix and enhance MagiCapture once the latest
version of GdkMagick is released.

Thank you for your time and patience. I aim to make GdkMagick a quality
solution for making graphics available to the GTK+ toolkit.

--Arthur
/*
 *  This file is part of the GdkMagick library.
 *  Copyright (C) 1999-2000 Arthur Jerijian
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU Library General Public License as
 *  published by the Free Software Foundation; either version 2 of the
 *  License, or (at your option) any later version.
 *
 *  This program 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 Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Library General Public
 *  License along with this program; see the file COPYING.LIB.  If not,
 *  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 *  Boston, MA 02111-1307, USA.
 */

#ifndef __GDK_MAGICK_H__
#define __GDK_MAGICK_H__

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <magick/api.h>
#include <magick/version.h>
#include <gdk/gdk.h>
#include <gdk/gdkrgb.h>
#include <gdk_magick_config.h>

/* __BEGIN_DECLS should be used at the beginning of your declarations,
   so that C++ compilers don't mangle their names.  Use __END_DECLS at
   the end of C declarations. */
#undef __BEGIN_DECLS
#undef __END_DECLS
#ifdef __cplusplus
# define __BEGIN_DECLS extern "C" {
# define __END_DECLS }
#else
# define __BEGIN_DECLS /* empty */
# define __END_DECLS /* empty */
#endif

/* __P is a macro used to wrap function prototypes, so that compilers
   that don't understand ANSI C prototypes still work, and ANSI C
   compilers can issue warnings about type mismatches. */
#undef __P
#if defined (__STDC__) || defined (_AIX) \
    || (defined (__mips) && defined (_SYSTYPE_SVR4)) \
    || defined(WIN32) || defined(__cplusplus)
# define __P(protos) protos
#else
# define __P(protos) ()
#endif

__BEGIN_DECLS

/*********************************************************************
 *
 * MACROS AND CONSTANTS
 */

/*********************************************************************
 *
 * DATA TYPES
 */

/*********************************************************************
 *
 * FUNCTIONS
 */

/* Library initialization */

gboolean gdk_magick_init __P ((gboolean install));
void gdk_magick_set_min_colors __P ((gint min_colors));
void gdk_magick_set_auto_dither __P ((gboolean dither));
GdkVisual *gdk_magick_get_visual __P ((void));
GdkColormap *gdk_magick_get_colormap __P ((void));

/* Routines to convert from an ImageMagick image to a GDK drawable */

GdkPixmap *gdk_magick_convert_to_pixmap __P ((Image *magick_image));
GdkBitmap *gdk_magick_convert_to_bitmap __P ((Image *magick_image));
GdkImage *gdk_magick_convert_to_image __P ((Image *magick_image));

/* Routines to convert from a GDK Drawable to an ImageMagick image */

Image *gdk_magick_convert_from_drawable __P ((GdkDrawable *gdk_drawable));
Image *gdk_magick_convert_from_pixmap __P ((GdkPixmap *gdk_pixmap));
Image *gdk_magick_convert_from_bitmap __P ((GdkBitmap *gdk_bitmap));
Image *gdk_magick_convert_from_image __P ((GdkBitmap *gdk_image));

/* Routines to render an ImageMagick image into an existing drawable */

gboolean gdk_magick_render_to_drawable_with_gdkrgb
__P ((
    GdkDrawable *gdk_drawable,
    Image *magick_image,
    GdkGC *gc,
    gint x_src,
    gint y_src,
    gint x_dest,
    gint y_dest,
    gint width,
    gint height,
    gboolean dither,
    gint x_dither,
    gint y_dither
));
gboolean gdk_magick_render_to_monochrome_drawable
__P ((
    GdkDrawable *gdk_drawable,
    Image *magick_image,
    GdkGC *gc,
    gint x_src,
    gint y_src,
    gint x_dest,
    gint y_dest,
    gint width,
    gint height,
    gboolean dither,
    gint x_dither,
    gint y_dither
));
gboolean gdk_magick_render_to_image_with_magick
__P ((
    GdkImage *gdk_image,
    Image *magick_image,
    gint x_src,
    gint y_src,
    gint x_dest,
    gint y_dest,
    gint width,
    gint height,
    gboolean dither,
    gint x_dither,
    gint y_dither
));

/* Routines to render the contents of a drawable into an ImageMagick image */

gboolean gdk_magick_render_from_drawable
__P ((
    Image *magick_image,
    GdkDrawable *gdk_drawable,
    gint x_src,
    gint y_src,
    gint x_dest,
    gint y_dest,
    gint width,
    gint height
));
gboolean gdk_magick_render_from_monochrome_drawable
__P ((
    Image *magick_image,
    GdkDrawable *gdk_drawable,
    gint x_src,
    gint y_src,
    gint x_dest,
    gint y_dest,
    gint width,
    gint height
));
gboolean gdk_magick_render_from_image
__P ((
    Image *magick_image,
    GdkImage *gdk_image,
    gint x_src,
    gint y_src,
    gint x_dest,
    gint y_dest,
    gint width,
    gint height
));

/* Utility functions */

void gdk_magick_error __P ((gchar *message));
void gdk_magick_warning __P ((gchar *message));
void gdk_magick_assert __P ((gchar *message));

/* Version management functions */

guint32 gdk_magick_get_version __P ((void));
gboolean gdk_magick_check_version __P ((guchar *version_string));
guint32 gdk_magick_string_to_version __P ((guchar *version_string));

__END_DECLS

#endif /* __GDK_MAGICK_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]