/* * image.h -- Image structure manipulating library header * (C)Copyright 1999 by Hiroshi Takekawa * Last Modified: Mon Jun 26 18:31:52 2000. * $Id: image.h,v 1.6 2000/06/27 18:19:05 sian Exp $ */ #ifndef _IMAGE_H_ #define _IMAGE_H_ #define CONNECT_RESIZE 1 #define CONNECT_VERTICAL 2 #define GRAVITY_MINUS (-1) #define GRAVITY_CENTER 0 #define GRAVITY_PLUS 1 /* 内部フォーマットを統一するためにmaskの方を固定する… */ /* _RGB15のbit mask */ #define RED_MASK15 0x7c00 #define GREEN_MASK15 0x03e0 #define BLUE_MASK15 0x001f /* _RGB16のbit mask */ #define RED_MASK 0xf800 #define GREEN_MASK 0x07e0 #define BLUE_MASK 0x001f typedef enum { _UNKNOWN, _MONO, _GRAY, _INDEX, _RGB16, _RGB24, _RGB15 = 255 /* ugly... */ } ImageType; typedef enum { _DONOTHING, _TRANSPARENT, #ifdef SHAPE _SHAPE #endif } Transparent; typedef enum { _NOTHING_DISPOSAL, _LEFTIMAGE, _RESTOREBACKGROUND, _RESTOREPREVIOUS } Disposal; typedef struct _color { int red; int green; int blue; int index; } Color; typedef struct _image Image; struct _image { int left, top; int width, height; int ncolors; Transparent transparent_disposal; Disposal image_disposal; Color transparent; Color background; int delay; unsigned char colormap[256][3]; int image_size; int bytes_per_line; ImageType type; unsigned char *image; #ifdef SHAPE unsigned char *mask; int mask_size; Pixmap pixmask; #endif Image *next; }; #include "effect.h" Image *image_allocate(void); int image_calculate_bytes_per_line(int, ImageType); Image *image_create(int, int, ImageType); void image_destroy(Image *); Image *image_duplicate(Image *); int image_expand(Image *, ImageType); void image_expand_auto(Image *, int); int image_reduce(Image *, ImageType); int image_magnify_generic(Image *, int, int, Interpolate_method); int image_magnify(Image *, double, Interpolate_method); int image_flip_vertical(Image *p); int image_flip_horizontal(Image *p); void image_copy_sub(Image *, Image *, int, int, int, int, int, int); void image_copy(Image *, Image *, int, int); Image *image_resize(Image *, int, int, int); Image *image_connect(Image *, Image *, int); #ifdef SHAPE int image_create_mask(Image *); #endif #endif