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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? winbmp.c

?? 這是針對(duì) Linux (i386)平臺(tái)的 minigui 3.6.2 開發(fā)包(MiniGUI-Processes 運(yùn)行模式)。
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* $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)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品影视网| 欧美性xxxxx极品少妇| 中文字幕一区二区三区乱码在线| 日本道色综合久久| 国产在线精品免费| 亚洲美女偷拍久久| 久久亚洲欧美国产精品乐播| 欧美中文一区二区三区| 国产激情一区二区三区四区 | 亚洲乱码国产乱码精品精小说 | 在线不卡的av| 成人国产一区二区三区精品| 日韩成人午夜精品| 亚洲自拍偷拍综合| 亚洲人成小说网站色在线| 久久嫩草精品久久久久| 欧美一区二区三区四区在线观看| 91丨porny丨最新| 处破女av一区二区| 激情综合五月婷婷| 蜜臀av一区二区在线观看| 亚洲午夜影视影院在线观看| 中文字幕亚洲不卡| 欧美国产日韩精品免费观看| 精品国产1区二区| 日韩欧美一级片| 欧美一二区视频| 9191精品国产综合久久久久久| 色老汉av一区二区三区| 91性感美女视频| 99精品1区2区| yourporn久久国产精品| 国产一区二区电影| 精品一区二区三区视频| 麻豆久久久久久久| 美女视频免费一区| 久久国产尿小便嘘嘘| 蜜臀av性久久久久蜜臀av麻豆| 亚洲6080在线| 午夜亚洲福利老司机| 亚洲无人区一区| 视频在线在亚洲| 日本成人在线不卡视频| 美腿丝袜亚洲三区| 美女精品自拍一二三四| 韩国女主播成人在线观看| 国产999精品久久久久久绿帽| 蜜芽一区二区三区| 国产美女主播视频一区| 国产成人精品免费在线| 成人在线综合网| 91女神在线视频| 欧美性色黄大片| 51精品视频一区二区三区| 91精品国产欧美一区二区成人| 欧美二区三区的天堂| 欧美大片在线观看一区| 久久精品视频一区二区三区| 国产精品―色哟哟| 一区二区三区欧美在线观看| 香蕉久久一区二区不卡无毒影院| 日韩主播视频在线| 国产一区二区在线电影| av欧美精品.com| 欧美性xxxxxx少妇| 精品久久久久99| 国产精品美女久久久久久久久久久| 亚洲人成人一区二区在线观看| 亚洲超碰精品一区二区| 韩国理伦片一区二区三区在线播放| 成熟亚洲日本毛茸茸凸凹| 欧洲精品一区二区| 精品日本一线二线三线不卡| 中文字幕亚洲在| 日本网站在线观看一区二区三区| 国产剧情在线观看一区二区| 色综合婷婷久久| 欧美变态tickle挠乳网站| 中文字幕av资源一区| 亚洲成精国产精品女| 国产中文字幕精品| 91精品福利视频| 精品国产一区二区三区久久久蜜月| 国产精品网站导航| 日本最新不卡在线| 成人毛片视频在线观看| 91精品国产综合久久久蜜臀粉嫩| 午夜精品免费在线观看| 国内成人自拍视频| 欧美午夜片在线看| 欧美国产日本视频| 麻豆精品一区二区av白丝在线| 成人福利视频网站| 日韩欧美国产三级| 一区二区三区国产精华| 国产一区二区精品久久| 欧美疯狂性受xxxxx喷水图片| 欧美激情一区不卡| 日韩va欧美va亚洲va久久| 成人黄动漫网站免费app| 欧美大尺度电影在线| 一区二区免费看| 成人激情开心网| 精品少妇一区二区三区视频免付费 | 紧缚捆绑精品一区二区| 欧美在线不卡视频| 国产精品久久福利| 国内精品视频一区二区三区八戒| 欧美综合一区二区三区| 国产精品电影院| 国产精品一区二区不卡| 91精品婷婷国产综合久久竹菊| 亚洲男人天堂av网| 成人精品视频一区| 久久久国际精品| 美女网站在线免费欧美精品| 欧美日韩国产一级片| 亚洲精品成人悠悠色影视| www..com久久爱| 中文子幕无线码一区tr | 色噜噜久久综合| 国产精品久久久久久久久晋中 | 亚洲小少妇裸体bbw| av不卡免费电影| 国产精品天干天干在观线| 国内精品自线一区二区三区视频| 91精品国产色综合久久不卡电影| 亚洲一区二区五区| 欧美性受xxxx黑人xyx| 亚洲综合成人在线视频| 欧美视频一区二区三区四区| 亚洲激情av在线| 91福利社在线观看| 亚洲综合小说图片| 欧美日韩一二三区| 亚洲一级二级在线| 欧美日本一道本| 蜜桃久久久久久| 久久男人中文字幕资源站| 国产乱国产乱300精品| 久久精品亚洲麻豆av一区二区| 国产资源在线一区| 欧美激情一区二区三区四区| 成人一级黄色片| 亚洲欧洲日韩女同| 欧美吻胸吃奶大尺度电影| 亚洲va欧美va人人爽午夜| 欧美高清dvd| 国产麻豆成人精品| 中文字幕免费一区| 色吧成人激情小说| 亚洲第一电影网| 日韩精品在线一区| 成人午夜免费电影| 亚洲另类在线制服丝袜| 欧美日韩国产片| 精品一区二区三区免费观看 | 综合久久国产九一剧情麻豆| 色综合色狠狠综合色| 亚洲一区二区黄色| 欧美成人激情免费网| 波多野结衣一区二区三区| 亚洲黄网站在线观看| 日韩亚洲欧美一区| 国产毛片精品视频| 亚洲女厕所小便bbb| 在线不卡欧美精品一区二区三区| 激情偷乱视频一区二区三区| 国产精品美女一区二区在线观看| 色婷婷综合久久久久中文一区二区 | 91麻豆国产在线观看| 丝袜亚洲另类欧美| 久久精品亚洲精品国产欧美| 色综合久久88色综合天天免费| 午夜电影网一区| 国产欧美一区二区三区在线看蜜臀| 99国产精品久| 美洲天堂一区二卡三卡四卡视频| 欧美国产激情一区二区三区蜜月| 欧美在线免费观看视频| 国产露脸91国语对白| 亚洲电影激情视频网站| 久久一二三国产| 欧美三级三级三级| 国产高清精品久久久久| 亚洲午夜久久久久久久久电影院| 国产日韩一级二级三级| 欧美色爱综合网| 成人v精品蜜桃久久一区| 视频一区二区欧美| 中文字幕一区二区三中文字幕| 欧美一级精品在线| 色屁屁一区二区| 国产成人综合在线播放| 视频一区在线播放| 中文字幕日韩一区| 欧美精品一区二区三区在线播放| 色www精品视频在线观看| 岛国av在线一区| 久久不见久久见免费视频1|