From d40ae99422e118188a7f48055dc340c6aca022aa Mon Sep 17 00:00:00 2001 From: Kitty Draper Date: Sat, 5 Mar 2011 21:39:25 -0500 Subject: first commit --- source/nds/bitmap.h | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 source/nds/bitmap.h (limited to 'source/nds/bitmap.h') diff --git a/source/nds/bitmap.h b/source/nds/bitmap.h new file mode 100644 index 0000000..c8f9c52 --- /dev/null +++ b/source/nds/bitmap.h @@ -0,0 +1,111 @@ +/* bitmap.c + * + * Copyright (C) 2010 dking + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public Licens e 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 + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __BITMAP_H__ +#define __BITMAP_H__ +#include "ds2_types.h" +#include "fs_api.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _pixelmapheader{ + u32 imHeadsize; //Bitmap information header size + u32 imBitmapW; //bitmap width in pixel + u32 imBitmapH; //bitmap height in pixel + u16 imPlanes; //bitmap planes numbers, must be set to 1 + u16 imBitpixel; //bits per pixel + u32 imCompess; //compress method + u32 imImgsize; //image size, times of 4-byte + u32 imHres; //horizontal resolution, pixel/metel + u32 imVres; //vertical resolution, pixel/metel + u32 imColnum; //number of colors in color palette, 0 to exp(2) + u32 imImcolnum; //important colors numbers used +} IMAGEHEADER; + + +typedef struct _bitmapfileheader{ + u16 bfType; //BMP file types + u32 bfSize; //BMP file size(Not the pixel image size) + u16 bfReserved0;//reserved area0 + u16 bfReserved1;//reserved area1 + u32 bfImgoffst; //pixel data area offset + IMAGEHEADER bfImghead; +} BMPHEADER; + + +typedef struct _bitmapInfo{ + FILE* fp; + BMPHEADER bmpHead; +} BMPINFO; + +//#define NULL 0 + +//compression method +/* Value Identified by Compression method Comments +* 0 BI_RGB none Most common +* 1 BI_RLE8 RLE 8-bit/pixel Can be used only with 8-bit/pixel bitmaps +* 2 BI_RLE4 RLE 4-bit/pixel Can be used only with 4-bit/pixel bitmaps +* 3 BI_BITFIELDS Bit field Can be used only with 16 and 32-bit/pixel bitmaps. +* 4 BI_JPEG JPEG The bitmap contains a JPEG image +* 5 BI_PNG PNG The bitmap contains a PNG image +*/ +#define BI_RGB 0 +#define BI_RLE8 1 +#define BI_RLE4 2 +#define BI_BITFIELDS 3 +#define BI_JPEG 4 +#define BI_PNG 5 + +//error message +#define BMP_OK 0 +#define BMP_ERR_OPENFAILURE 1 +#define BMP_ERR_FORMATE 2 +#define BMP_ERR_NOTSUPPORT 3 +#define BMP_ERR_NEED_GO_ON 4 + + +#define FILEOPENCHECK(fp) (fp!=NULL) + + +extern int BMP_read(char* filename, char *buf, unsigned int width, + unsigned int height, unsigned int *type); + +/* +* open BMP file +*/ +extern int openBMP(BMPINFO* bmpInfo, const char* file); + +/* +* read pixel form BMP file +*/ +extern int readBMP(BMPINFO* bmpInfo, unsigned int start_x, unsigned int start_y, + unsigned int width, unsigned int height, void* buffer); + +/* +* close BMP file +*/ +extern void closeBMP(BMPINFO* bmpInfo); + +#ifdef __cplusplus +} +#endif + +#endif //__BITMAP_H__ -- cgit v1.2.3