wbmp.h
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:2k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. #ifndef WBMP_H
  2. #define WBMP_H
  3. /* WBMP - Wireless Bitmap
  4.  *
  5.  * Kalle Marjola 1999 for WapIT Ltd.
  6.  *
  7.  * functions to store WBMPs and and create Octet strings from them
  8.  */
  9. #include "gwlib/gwlib.h"
  10. /* extension header parameters... not implemented/supported in any WBMP
  11.  * yet... but for future reference, although I'm quite sure there is
  12.  * something wrong in these...
  13.  */
  14. typedef struct extparam {
  15.     Octet bitfield; /* if bitfield additional data */
  16.     /* or */
  17.     char param[9]; /* parameter */
  18.     char value[17]; /* and associated value */
  19. } ExtParam;
  20.     
  21. /* WBMP - wireless bitmap format
  22.  *
  23.  * structure to define wireless bitmap - not complete!
  24.  */
  25. typedef struct wbmp {
  26.     MultibyteInt      type_field;
  27.     Octet      fix_header_field;
  28.     /* extension header is a bit more complicated thing that what is
  29.      * represented here but the spesification is a bit obfuscated one
  30.      * and they are not yet used to anything, so it is left undefined
  31.      */
  32.     ExtParam *ext_header_field;
  33.     int exthdr_count; /* total # of ext headers */
  34.     MultibyteInt width;
  35.     MultibyteInt height;
  36.     Octet *main_image;
  37.     Octet **animated_image;
  38.     int animimg_count; /* total # of animated images */
  39. } WBMP;
  40. /* create a new empty WBMP struct. Return a pointer to it or NULL if
  41.  * operation fails
  42.  */
  43. WBMP *wbmp_create_empty(void);
  44. /* delete given WBMP, including freeing the pixmap */
  45. void wbmp_delete(WBMP *pic);
  46. #define NEGATIVE 1 /* source has white=0, black=1 */
  47. #define REVERSE 2 /* source has righmost as most significant */
  48. /* create a new bitmap
  49.  *
  50.  * type: 0 (B/W, Uncompressed bitmap) WBMP - the only type currently
  51.  *  specificated.
  52.  *
  53.  * width and height are size of the bitmap,
  54.  * data is the entire bitmap; from left-top corner to righ-bottom;
  55.  * if the width is not dividable by 8, the rest of the row is padded with
  56.  * zeros. bytes are ordered big-endian
  57.  *
  58.  * target: black=0, white=1, most significant leftmost
  59.  *
  60.  * You can generate raw bitmap in Linux (RH 6.0) with following line:
  61.  * %> convert -monochrome input_file target.mono
  62.  *
  63.  * ..which then requires flags REVERSE and NEGATIVE
  64.  *
  65.  * return pointer to created WBMP, or NULL if fails
  66.  */
  67. WBMP *wbmp_create(int type, int width, int height, Octet *data, int flags);
  68. /* create Octet stream out of given WBMP
  69.  * return the length of stream, *stream is set to new stream which must
  70.  * be freed by the caller
  71.  */
  72. int wbmp_create_stream(WBMP *pic, Octet **stream);
  73. #endif