diff options
Diffstat (limited to 'BMP.h')
-rwxr-xr-x | BMP.h | 100 |
1 files changed, 100 insertions, 0 deletions
@@ -0,0 +1,100 @@ + +/*============================================================================= + bmplib, a simple library to create, modify, and write BMP image files. + Copyright (C) 2009-2014 by Zack T Smith. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 + as published by the Free Software Foundation. + + 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + The author may be reached at veritas@comcast.net. + *============================================================================*/ + +#ifndef _BMP_H +#define _BMP_H + +#include <stdint.h> + +#define BMPLIB_RELEASE "0.9" +#define BMPLIB_RELEASE_MAJOR 0 +#define BMPLIB_RELEASE_MINOR 9 + +typedef uint32_t RGB; +typedef uint32_t RGBA; + +typedef struct { + int width, height; + RGB *pixels; +} BMP; + +#define FONT_HEIGHT (17) +#define MINIFONT_HEIGHT (8) + +extern BMP* BMP_new (int, int); +extern void BMP_destroy (BMP*); +extern void BMP_clear (BMP*, RGB); +extern int BMP_write (const BMP*, const char *path); +extern void BMP_point (BMP*, int, int, RGB); +extern void BMP_line (BMP *, int x0, int y0, int x1, int y1, RGB); +extern void BMP_line_dashed (BMP *, int x0, int y0, int x1, int y1, RGB); +extern void BMP_hline (BMP *, int x0, int x1, int y, RGB); +extern void BMP_vline (BMP *, int x, int y0, int y1, RGB); +extern void BMP_rect (BMP *, int x, int y, int w, int h, RGB); +extern void BMP_fillrect (BMP *, int x, int y, int w, int h, RGB); +extern RGB BMP_getpixel (BMP*, int, int); + +extern int BMP_draw_string (BMP *, const char *, int x, int y, RGB); +extern int BMP_string_width (const char *); + +extern int BMP_draw_mini_string (BMP *, const char *, int x, int y, RGB); +extern int BMP_mini_string_width (const char *); + +#define RGB_BLACK (0) +#define RGB_BLUE (0xff) +#define RGB_BRASS (0xc3a368) +#define RGB_BROWN (0x8b4513) +#define RGB_CADETBLUE (0x5f9ea0) +#define RGB_CHARTREUSE (0x7fff00) +#define RGB_CORAL (0xff7f50) +#define RGB_CYAN (0xffff) +#define RGB_DARKGREEN (0x6400) +#define RGB_DARKKHAKI (0xbdb76b) +#define RGB_DARKOLIVEGREEN (0x556b2f) +#define RGB_DARKORANGE (0xff8c00) +#define RGB_DODGERBLUE (0x1e90ff) +#define RGB_GOLDENROD (0xdaa520) +#define RGB_GRAY (0xc0c0c0) +#define RGB_GREEN (0xff00) +#define RGB_KHAKI (0xf0e68c) +#define RGB_LEMONYELLOW (0xfde910) +#define RGB_MAGENTA (0xff00ff) +#define RGB_MAROON (0x800000) +#define RGB_NAVYBLUE (0x80) +#define RGB_ORANGE (0xffa500) +#define RGB_PINK (0xf77fbe) +#define RGB_PURPLE (0xa020f0) +#define RGB_RED (0xff0000) +#define RGB_ROYALBLUE (0x4169e1) +#define RGB_SALMON (0xfa8072) +#define RGB_TURQUOISE (0x40e0d0) +#define RGB_VIOLET (0xee82ee) +#define RGB_WHITE (0xffffff) +#define RGB_YELLOW (0xffff00) + +#define RGB_GRAY6 (0x606060) +#define RGB_GRAY8 (0x808080) +#define RGB_GRAY10 (0xa0a0a0) +#define RGB_GRAY12 (0xc0c0c0) +#define RGB_GRAY14 (0xe0e0e0) + +#endif + |