亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gui_bmp_serialize.c

?? 這套代碼已經成功一直到S3C44B0X開發板上
?? C
字號:
/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : GUI_BMP_Serialize.c
Purpose     : Implementation of GUI_BMP_Serialize
---------------------------END-OF-HEADER------------------------------
*/

#include "GUI.h"

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/

#define DIB_HEADER_MARKER ((U16) ('M' << 8) | 'B') /* DIB Header Marker - used in writing DIBs to files */

#define SIZEOF_BITMAPFILEHEADER 14
#define SIZEOF_BITMAPINFOHEADER 40

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _SendU16
*/
static void _SendU16(GUI_CALLBACK_VOID_U8_P * pfSerialize, U16 Data, void * p) {
  (*pfSerialize)((U8)Data, p);
  (*pfSerialize)(Data >> 8, p);
}

/*********************************************************************
*
*       _SendU32
*/
static void _SendU32(GUI_CALLBACK_VOID_U8_P * pfSerialize, U32 Data, void * p) {
  _SendU16(pfSerialize, (U16)Data, p);
  _SendU16(pfSerialize, Data >> 16, p);
}

/*********************************************************************
*
*       Exported routines
*
**********************************************************************
*/
/*********************************************************************
*
*       GUI_BMP_SerializeEx
*/
void GUI_BMP_SerializeEx(GUI_CALLBACK_VOID_U8_P * pfSerialize, int x0, int y0, int xSize, int ySize, void * p) {
  int x, y, i;
  U32 BitmapOffset, FileSize;
  int BPP          = LCD_GetBitsPerPixel();
  int BytesPerLine = ((BPP > 8) ? (2 * xSize + 2) : (xSize + 3)) & ~3;
  int NumColors    = (BPP > 8) ? 0 : (1 << BPP);
  /* Write BITMAPFILEHEADER */
  BitmapOffset   = SIZEOF_BITMAPFILEHEADER
                 + SIZEOF_BITMAPINFOHEADER
                 + NumColors * 4;
  FileSize       = BitmapOffset
                 + ySize * BytesPerLine;
  _SendU16(pfSerialize, DIB_HEADER_MARKER, p);       /* bfType */
  _SendU32(pfSerialize, FileSize, p);                /* bfSize */
  _SendU32(pfSerialize, 0, p);                       /* bfReserved1, bfReserved2 */
  _SendU32(pfSerialize, BitmapOffset, p);            /* bfOffBits */
  /* Write BITMAPINFOHEADER */
  _SendU32(pfSerialize, SIZEOF_BITMAPINFOHEADER, p); /* biSize */
  _SendU32(pfSerialize, xSize, p);                   /* biWidth */
  _SendU32(pfSerialize, ySize, p);                   /* biHeighth */
  _SendU16(pfSerialize, 1, p);                       /* biPlanes */
  _SendU16(pfSerialize, (BPP  <= 8) ? 8 : 16, p);    /* biBitCount */
  _SendU32(pfSerialize, 0, p);                       /* biCompression */
  _SendU32(pfSerialize, 0, p);                       /* biSizeImage */
  _SendU32(pfSerialize, 0, p);                       /* biXPelsPerMeter */
  _SendU32(pfSerialize, 0, p);                       /* biYPelsPerMeter */
  _SendU32(pfSerialize, NumColors, p);               /* biClrUsed */
  _SendU32(pfSerialize, 0, p);                       /* biClrImportant */
  /* Write palette */
  for (i = 0; i < NumColors; i++) {
    U32 Color;
    Color = GUI_Index2Color(i);
    Color = ((Color >> 16) & 255) | (Color & 0xff00) | ((Color & 0xff) << 16);
    _SendU32(pfSerialize, Color, p);
  }
  /* Write pixels */
  for (y = ySize - 1; y >= 0; y--) {
    for (x = 0; x < xSize; x++) {
      if (BPP <= 8) {
        pfSerialize(LCD_GetPixelIndex(x0 + x, y0 + y), p);
      } else {
        U16 Color16;
        U32 Color = LCD_GetPixelColor(x0 + x, y0 + y);
        int b = ((Color >> 16) * 31 + 127) / 255;
        int g = (((Color >> 8) & 255) * 31 + 127) / 255;
        int r = ((Color & 255) * 31 + 127) / 255;
        Color16 = (r << 10) | (g << 5) | b;       /* 16 bpp Bitmaps in windows are 555: rrrrrgggggbbbbb */
        _SendU16(pfSerialize, Color16, p);
      }
    }
    /* Align pointer to next U32 */
    for (i = BytesPerLine & 3; i > 0; i--) {
      pfSerialize(0, p);
    }
  }
}

/*********************************************************************
*
*       GUI_BMP_Serialize
*/
void GUI_BMP_Serialize(GUI_CALLBACK_VOID_U8_P * pfSerialize, void * p) {
  GUI_BMP_SerializeEx(pfSerialize, 0, 0, LCD_GetXSize(), LCD_GetYSize(), p);
}

/*************************** End of file ****************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频免费看| 国产精品三级电影| 久久综合九色欧美综合狠狠| 国产精品电影一区二区| 日本va欧美va精品发布| 9l国产精品久久久久麻豆| 欧美成人video| 亚洲图片欧美色图| www.66久久| 久久精品视频免费观看| 麻豆视频一区二区| 91麻豆精品国产91久久久久久久久| 国产精品视频免费| 国产一区二区在线视频| 欧美大片国产精品| 丝袜亚洲另类欧美综合| 日本精品裸体写真集在线观看| 欧美国产欧美综合| 国产精品亚洲一区二区三区妖精| 7777女厕盗摄久久久| 亚洲欧美色一区| 91天堂素人约啪| 欧美激情中文字幕一区二区| 免费观看一级特黄欧美大片| 欧美色图12p| 亚洲综合丁香婷婷六月香| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 舔着乳尖日韩一区| 在线免费观看视频一区| 国产精品美女久久久久高潮| 成人一区二区三区| 国产精品久久久久久久久久久免费看 | 久久久久久**毛片大全| 美美哒免费高清在线观看视频一区二区 | 国产精品短视频| caoporen国产精品视频| 国产精品久久久久永久免费观看| 成人永久免费视频| 亚洲欧洲日产国产综合网| 色一区在线观看| 亚洲一区日韩精品中文字幕| 欧美精品色综合| 毛片一区二区三区| 国产欧美日韩视频在线观看| thepron国产精品| 一区二区三区免费看视频| 欧美日韩综合在线| 精品亚洲免费视频| 国产精品高潮呻吟久久| 在线观看免费一区| 日本特黄久久久高潮| 精品福利视频一区二区三区| 成人午夜电影久久影院| 亚洲精品高清在线| 7777精品伊人久久久大香线蕉经典版下载 | 欧美三级电影在线看| 美腿丝袜亚洲综合| 国产精品日产欧美久久久久| 在线视频国产一区| 久久99精品网久久| 成人免费在线视频| 日韩一卡二卡三卡四卡| www.欧美日韩国产在线| 日韩电影在线免费看| 国产欧美日韩三区| 欧美精品18+| 成人免费精品视频| 日韩黄色免费网站| 中文字幕一区日韩精品欧美| 2024国产精品| 99九九99九九九视频精品| 日韩中文字幕亚洲一区二区va在线| 久久久久久久久久看片| 日本丰满少妇一区二区三区| 韩国av一区二区三区在线观看| 一区二区三区免费观看| 国产欧美1区2区3区| 欧美亚洲日本一区| 国产91精品一区二区| 天天色综合天天| 亚洲三级电影网站| 久久久久久久精| 欧美一级理论片| 在线观看不卡视频| 成人黄色777网| 裸体歌舞表演一区二区| 亚洲午夜久久久久久久久电影院 | 欧美精品在欧美一区二区少妇| 粉嫩一区二区三区在线看| 日韩电影在线观看网站| 国产精品久久久久四虎| 精品99999| 欧美一区二区三区视频| 在线观看成人小视频| 99久久精品免费看| 国产成人亚洲综合a∨婷婷| 免费人成黄页网站在线一区二区| 亚洲乱码国产乱码精品精98午夜| 国产亚洲精品7777| 久久久天堂av| 亚洲精品一区二区三区精华液 | 亚洲成av人综合在线观看| 国产精品网友自拍| 久久丝袜美腿综合| 精品精品欲导航| 欧美tickling网站挠脚心| 91麻豆精品国产自产在线| 欧美日韩国产美女| 欧美精品乱码久久久久久按摩| 在线观看免费一区| 欧美日韩国产美| 欧美电影在线免费观看| 欧美精品电影在线播放| 欧美一区二区在线免费播放 | 久久久www成人免费毛片麻豆| 精品国偷自产国产一区| 2欧美一区二区三区在线观看视频| 日韩欧美在线影院| 久久久久国产成人精品亚洲午夜 | 亚洲麻豆国产自偷在线| 亚洲免费观看在线视频| 亚洲午夜久久久| 五月婷婷另类国产| 美国毛片一区二区| 国产激情视频一区二区在线观看| 国产精品性做久久久久久| 成人国产在线观看| 99国产精品国产精品久久| 色老头久久综合| 91麻豆精品国产91久久久更新时间| 欧美一区在线视频| 精品国产髙清在线看国产毛片| 26uuu亚洲综合色欧美| 国产精品久久久久9999吃药| 一区二区三区丝袜| 日韩精品久久理论片| 国产丶欧美丶日本不卡视频| 99久久精品免费看国产| 欧美日韩国产高清一区| 精品国产乱码久久久久久久久| 中文成人综合网| 亚洲国产日韩精品| 寂寞少妇一区二区三区| 91在线免费播放| 日韩欧美一级精品久久| 日本一区二区不卡视频| 亚洲午夜精品17c| 精品综合久久久久久8888| 91免费版在线| 欧美www视频| 亚洲卡通动漫在线| 精品一区二区久久久| 色成年激情久久综合| 久久综合一区二区| 亚洲黄一区二区三区| 国产在线一区二区综合免费视频| 91亚洲精品久久久蜜桃网站 | 樱桃国产成人精品视频| 久久精品国产色蜜蜜麻豆| 95精品视频在线| 精品久久久久久综合日本欧美| 一区二区三区中文字幕在线观看| 国内精品视频666| 欧美日韩精品欧美日韩精品一| 欧美韩日一区二区三区| 青娱乐精品在线视频| 99久久er热在这里只有精品66| 日韩欧美一区电影| 亚洲一区二区三区四区在线观看| 国产成人午夜精品影院观看视频| 欧美年轻男男videosbes| 亚洲色图制服诱惑| 成人免费看片app下载| 26uuu亚洲综合色欧美| 日本vs亚洲vs韩国一区三区二区 | 国产日韩欧美精品在线| 麻豆精品新av中文字幕| 欧美日韩一区不卡| 亚洲欧美电影院| 成人a区在线观看| 国产欧美精品区一区二区三区| 久久99国产精品免费| 日韩一区二区麻豆国产| 亚洲福利一区二区| 欧美系列一区二区| 亚洲综合在线观看视频| 色综合一区二区| 亚洲欧美电影一区二区| 91影院在线免费观看| 国产精品另类一区| 成人激情小说乱人伦| 国产精品久久久久永久免费观看| 国产成人av资源| 中文字幕精品在线不卡| 国产成人精品免费| 中文字幕国产一区| jlzzjlzz国产精品久久| 国产精品第五页| 日本电影欧美片| 午夜久久电影网|