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

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

?? winbmp.c

?? 這是針對 Linux (i386)平臺的 minigui 3.6.2 開發(fā)包(MiniGUI-Processes 運行模式)。
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* $Id: winbmp.c,v 1.14 2004/10/19 07:34:54 weiym Exp $**** Low-level Windows bitmap read/save function.**** Copyright (C) 2003 Feynman Software.** Copyright (C) 2000 ~ 2002 Wei Yongming.**** Create date: 2000/08/26, derived from original bitmap.c**** Current maintainer: Wei Yongming.*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include "common.h"#include "gdi.h"#include "readbmp.h"/************************* Bitmap-related structures  ************************/typedef struct tagRGBTRIPLE{    BYTE    rgbtBlue;    BYTE    rgbtGreen;    BYTE    rgbtRed;} RGBTRIPLE;typedef RGBTRIPLE* PRGBTRIPLE;typedef struct tagRGBQUAD{    BYTE    rgbBlue;    BYTE    rgbGreen;    BYTE    rgbRed;    BYTE    rgbReserved;} RGBQUAD;typedef RGBQUAD* PRGBQUAD;#define SIZEOF_RGBQUAD      4#define BI_RGB          0#define BI_RLE8         1#define BI_RLE4         2#define BI_BITFIELDS    3#define SIZEOF_BMFH     14#define SIZEOF_BMIH     40#define OS2INFOHEADERSIZE  12#define WININFOHEADERSIZE  40typedef struct BITMAPFILEHEADER{   unsigned short bfType;   unsigned long  bfSize;   unsigned short bfReserved1;   unsigned short bfReserved2;   unsigned long  bfOffBits;} BITMAPFILEHEADER;/* Used for both OS/2 and Windows BMP.  * Contains only the parameters needed to load the image  */typedef struct BITMAPINFOHEADER{   unsigned long  biWidth;   unsigned long  biHeight;   unsigned short biBitCount;   unsigned long  biCompression;} BITMAPINFOHEADER;typedef struct WINBMPINFOHEADER  /* size: 40 */{   unsigned long  biSize;   unsigned long  biWidth;   unsigned long  biHeight;   unsigned short biPlanes;   unsigned short biBitCount;   unsigned long  biCompression;   unsigned long  biSizeImage;   unsigned long  biXPelsPerMeter;   unsigned long  biYPelsPerMeter;   unsigned long  biClrUsed;   unsigned long  biClrImportant;} WINBMPINFOHEADER;typedef struct OS2BMPINFOHEADER  /* size: 12 */{   unsigned long  biSize;   unsigned short biWidth;   unsigned short biHeight;   unsigned short biPlanes;   unsigned short biBitCount;} OS2BMPINFOHEADER;/* read_bmfileheader: *  Reads a BMP file header and check that it has the BMP magic number. */static int read_bmfileheader(MG_RWops *f, BITMAPFILEHEADER *fileheader){   fileheader->bfType = fp_igetw(f);   fileheader->bfSize= fp_igetl(f);   fileheader->bfReserved1= fp_igetw(f);   fileheader->bfReserved2= fp_igetw(f);   fileheader->bfOffBits= fp_igetl(f);   if (fileheader->bfType != 19778)      return -1;   return 0;}/* read_win_bminfoheader: *  Reads information from a BMP file header. */static int read_win_bminfoheader(MG_RWops *f, BITMAPINFOHEADER *infoheader){   WINBMPINFOHEADER win_infoheader;   win_infoheader.biWidth = fp_igetl(f);   win_infoheader.biHeight = fp_igetl(f);   win_infoheader.biPlanes = fp_igetw(f);   win_infoheader.biBitCount = fp_igetw(f);   win_infoheader.biCompression = fp_igetl(f);   win_infoheader.biSizeImage = fp_igetl(f);   win_infoheader.biXPelsPerMeter = fp_igetl(f);   win_infoheader.biYPelsPerMeter = fp_igetl(f);   win_infoheader.biClrUsed = fp_igetl(f);   win_infoheader.biClrImportant = fp_igetl(f);   infoheader->biWidth = win_infoheader.biWidth;   infoheader->biHeight = win_infoheader.biHeight;   infoheader->biBitCount = win_infoheader.biBitCount;   infoheader->biCompression = win_infoheader.biCompression;   return 0;}/* read_os2_bminfoheader: *  Reads information from an OS/2 format BMP file header. */static int read_os2_bminfoheader(MG_RWops *f, BITMAPINFOHEADER *infoheader){   OS2BMPINFOHEADER os2_infoheader;   os2_infoheader.biWidth = fp_igetw(f);   os2_infoheader.biHeight = fp_igetw(f);   os2_infoheader.biPlanes = fp_igetw(f);   os2_infoheader.biBitCount = fp_igetw(f);   infoheader->biWidth = os2_infoheader.biWidth;   infoheader->biHeight = os2_infoheader.biHeight;   infoheader->biBitCount = os2_infoheader.biBitCount;   infoheader->biCompression = 0;   return 0;}/* read_bmicolors: *  Loads the color palette for 1,4,8 bit formats. */static void read_bmicolors (int ncols, RGB *pal, MG_RWops *f, int win_flag){   int i;   for (i=0; i<ncols; i++) {      pal[i].b = fp_getc(f);      pal[i].g = fp_getc(f);      pal[i].r = fp_getc(f);      if (win_flag)	    fp_getc(f);   }}/* read_RLE8_compressed_image: *  For reading the 8 bit RLE compressed BMP image format. */static void read_RLE8_compressed_image (MG_RWops *f, BYTE *bits, int pitch, BITMAPINFOHEADER *infoheader){    unsigned char count, val, val0;    int j, pos, line;    int eolflag, eopicflag;    eopicflag = 0;    line = infoheader->biHeight - 1;   while (eopicflag == 0) {      pos = 0;                               /* x position in bitmap */      eolflag = 0;                           /* end of line flag */      while ((eolflag == 0) && (eopicflag == 0)) {	 count = fp_getc(f);	 val = fp_getc(f);	 if (count > 0) {                    /* repeat pixel count times */	    for (j=0;j<count;j++) {	       bits [pos] = val;	       pos++;	    }	 }	 else {	    switch (val) {	       case 0:                       /* end of line flag */		  eolflag=1;		  break;	       case 1:                       /* end of picture flag */		  eopicflag=1;		  break;	       case 2:                       /* displace picture */		  count = fp_getc(f);		  val = fp_getc(f);		  pos += count;		  line -= val;		  break;	       default:                      /* read in absolute mode */		  for (j=0; j<val; j++) {		     val0 = fp_getc(f);             bits [pos] = val0;		     pos++;		  }		  if (j%2 == 1)		     val0 = fp_getc(f);    /* align on word boundary */		  break;	    }	 }	 if (pos-1 > (int)infoheader->biWidth)	    eolflag=1;      }      bits += pitch;      line--;      if (line < 0)	    eopicflag = 1;   }}/* read_RLE4_compressed_image: *  For reading the 4 bit RLE compressed BMP image format. */static void read_RLE4_compressed_image (MG_RWops *f, BYTE *bits, int pitch, BITMAPINFOHEADER *infoheader){   unsigned char b[8];   unsigned char count;   unsigned short val0, val;   int j, k, pos, line;   int eolflag, eopicflag;   eopicflag = 0;                            /* end of picture flag */   line = infoheader->biHeight - 1;   while (eopicflag == 0) {      pos = 0;      eolflag = 0;                           /* end of line flag */      while ((eolflag == 0) && (eopicflag == 0)) {	 count = fp_getc(f);	 val = fp_getc(f);	 if (count > 0) {                    /* repeat pixels count times */	    b[1] = val & 15;	    b[0] = (val >> 4) & 15;	    for (j=0; j<count; j++) {            if (pos % 2 == 0)                bits [pos/2] = b[j%2] << 4;            else                bits [pos/2] = bits [pos/2] | b[j%2];	       pos++;	    }	 }	 else {	    switch (val) {	       case 0:                       /* end of line */		  eolflag=1;		  break;	       case 1:                       /* end of picture */		  eopicflag=1;		  break;	       case 2:                       /* displace image */		  count = fp_getc(f);		  val = fp_getc(f);		  pos += count;		  line -= val;		  break;	       default:                      /* read in absolute mode */		  for (j=0; j<val; j++) {		     if ((j%4) == 0) {			val0 = fp_igetw(f);			for (k=0; k<2; k++) {			   b[2*k+1] = val0 & 15;			   val0 = val0 >> 4;			   b[2*k] = val0 & 15;			   val0 = val0 >> 4;			}		     }            if (pos % 2 == 0)                bits [pos/2] = b[j%4] << 4;            else                bits [pos/2] = bits [pos/2] | b[j%4];		     pos++;		  }		  break;	    }	 }	 if (pos-1 > (int)infoheader->biWidth)	    eolflag=1;      }      bits += pitch;      line--;      if (line < 0)	    eopicflag = 1;   }}/* read_16bit_image: *  For reading the 16-bit BMP image format. * This only support bit masks specific to Windows 95. */static void read_16bit_image (MG_RWops *f, BYTE *bits, int pitch, BITMAPINFOHEADER *infoheader, DWORD gmask){    int i, j;    WORD pixel;    BYTE *line;    for (i = 0; i < infoheader->biHeight; i++) {        line = bits;        for (j = 0; j < infoheader->biWidth; j++) {            pixel = fp_igetw (f);            if (gmask == 0x03e0)    /* 5-5-5 */            {                line [2] = ((pixel >> 10) & 0x1f) << 3;                line [1] = ((pixel >> 5) & 0x1f) << 3;                line [0] = (pixel & 0x1f) << 3;            }            else                    /* 5-6-5 */            {                line [2] = ((pixel >> 11) & 0x1f) << 3;                line [1] = ((pixel >> 5) & 0x3f) << 2;                line [0] = (pixel & 0x1f) << 3;            }            line += 3;        }        if (infoheader->biWidth & 0x01)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆国产精品久久| 国产69精品久久99不卡| 91超碰这里只有精品国产| 日韩激情在线观看| 69p69国产精品| 秋霞影院一区二区| 久久久五月婷婷| 成人a级免费电影| 怡红院av一区二区三区| 欧美欧美欧美欧美首页| 久久成人18免费观看| 久久久久久99精品| 91蝌蚪porny成人天涯| 亚洲综合色视频| 欧美一区二区观看视频| 大白屁股一区二区视频| 亚洲精品视频一区| 91精品国产手机| jiyouzz国产精品久久| 亚洲v中文字幕| 久久奇米777| 色婷婷av一区二区| 韩日欧美一区二区三区| 日韩一区欧美小说| 欧美一区二区在线看| 国产精品一色哟哟哟| 亚洲一区影音先锋| 久久综合久色欧美综合狠狠| heyzo一本久久综合| 日韩av电影免费观看高清完整版| 26uuu亚洲综合色| 日本丰满少妇一区二区三区| 久久精品久久99精品久久| 中文字幕一区免费在线观看| 91精品国产高清一区二区三区蜜臀| 国产精品综合一区二区三区| 午夜精品久久久久| 国产精品久久久99| 精品嫩草影院久久| 欧美午夜理伦三级在线观看| 国产一区二区不卡在线| 一区二区三区免费| 2023国产精华国产精品| 在线观看亚洲成人| 国产iv一区二区三区| 三级在线观看一区二区| 国产色婷婷亚洲99精品小说| 欧美日韩精品二区第二页| 成人午夜视频网站| 九一久久久久久| 香蕉乱码成人久久天堂爱免费| 国产精品伦理在线| 精品电影一区二区三区| 欧美日韩国产高清一区| av激情综合网| 国产iv一区二区三区| 久色婷婷小香蕉久久| 婷婷成人综合网| 一区二区三区在线观看国产| 国产免费成人在线视频| 欧美第一区第二区| 欧美电影在线免费观看| 在线视频观看一区| 一本久久精品一区二区| caoporn国产一区二区| 国产成人精品综合在线观看| 久色婷婷小香蕉久久| 蜜臀91精品一区二区三区| 视频在线观看一区二区三区| 亚洲精品中文字幕乱码三区| 国产精品沙发午睡系列990531| 欧美极品aⅴ影院| 国产欧美日韩亚州综合| 久久久国产综合精品女国产盗摄| 欧美大胆一级视频| 精品日韩在线观看| 亚洲精品一区二区三区影院| 日韩限制级电影在线观看| 欧美一区二区播放| 制服丝袜激情欧洲亚洲| 欧美一区中文字幕| 日韩欧美一区二区不卡| 日韩免费观看高清完整版在线观看| 日韩欧美一区二区视频| 精品福利在线导航| 亚洲国产精品二十页| 亚洲国产精品精华液2区45| 国产精品初高中害羞小美女文| 中文字幕一区二区三区蜜月| 亚洲摸摸操操av| 亚洲国产一区二区三区| 奇米精品一区二区三区在线观看| 日本免费新一区视频| 奇米色一区二区| 国产成人在线影院| va亚洲va日韩不卡在线观看| 日本久久电影网| 欧美色国产精品| 日韩一卡二卡三卡四卡| 久久午夜色播影院免费高清| 国产精品免费久久久久| 一区二区三区国产精华| 人人精品人人爱| 成人免费视频一区二区| 在线免费观看不卡av| 日韩欧美一区二区久久婷婷| 日本一区二区综合亚洲| 亚洲综合网站在线观看| 免费成人av在线| 99久久综合色| 日韩一区二区三区四区| 国产精品蜜臀av| 日本免费在线视频不卡一不卡二| 丰满亚洲少妇av| 欧美日韩在线三区| 国产亚洲综合av| 亚洲风情在线资源站| 精品一区二区三区的国产在线播放| 懂色av中文字幕一区二区三区 | 91社区在线播放| 在线不卡一区二区| 中日韩免费视频中文字幕| 亚洲福利视频一区| 不卡影院免费观看| 日韩精品一区国产麻豆| 亚洲综合在线视频| 国产成人丝袜美腿| 欧美一区二区性放荡片| 亚洲天堂免费在线观看视频| 国产在线精品不卡| 欧美欧美欧美欧美| 亚洲美女一区二区三区| 国产精品18久久久久| 日韩午夜精品视频| 亚洲国产视频直播| 91首页免费视频| 国产欧美日韩综合| 久久电影网站中文字幕| 欧美精品久久久久久久久老牛影院| 欧美国产精品v| 国产一区二区三区在线看麻豆| 欧美日韩精品系列| 亚洲一区视频在线观看视频| 成人app网站| 久久久精品中文字幕麻豆发布| 免费看日韩精品| 欧美群妇大交群中文字幕| 亚洲精品久久久蜜桃| 99视频超级精品| 亚洲国产经典视频| 国产91丝袜在线观看| 久久婷婷综合激情| 中文字幕综合网| 青青草一区二区三区| 欧洲在线/亚洲| 一区二区三区四区在线免费观看| 成人免费看的视频| 亚洲国产精品精华液ab| 国产成人自拍网| 久久久国产一区二区三区四区小说 | 欧美视频一二三区| 一区二区成人在线观看| 91美女视频网站| 亚洲日本欧美天堂| 色久优优欧美色久优优| 亚洲精品高清在线观看| 在线观看日韩一区| 亚洲一区二区av电影| 欧美老女人第四色| 日韩成人av影视| 91精品国产综合久久精品麻豆| 亚洲v精品v日韩v欧美v专区| 欧美日韩激情一区二区| 日韩中文字幕亚洲一区二区va在线| 欧美日韩视频在线观看一区二区三区| 洋洋av久久久久久久一区| 欧美系列一区二区| 日韩国产高清影视| 精品国产成人在线影院| 高清国产一区二区三区| 亚洲欧洲日产国码二区| 色综合视频一区二区三区高清| 一区二区成人在线观看| 欧美一区二区美女| 国产精品影视网| 亚洲男女毛片无遮挡| 69堂亚洲精品首页| 久久97超碰国产精品超碰| 国产亚洲欧洲997久久综合| av欧美精品.com| 天天综合日日夜夜精品| 久久网这里都是精品| 99精品久久99久久久久| 亚瑟在线精品视频| 亚洲精品在线电影| 在线看一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 中文字幕日韩欧美一区二区三区| 色婷婷国产精品久久包臀| 久久国产日韩欧美精品|