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

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

?? bitmapinfo.cpp

?? Windows 圖形編程 書籍
?? CPP
字號:
//-----------------------------------------------------------------------------------//
//              Windows Graphics Programming: Win32 GDI and DirectDraw               //
//                             ISBN  0-13-086985-6                                   //
//                                                                                   //
//  Written            by  Yuan, Feng                             www.fengyuan.com   //
//  Copyright (c) 2000 by  Hewlett-Packard Company                www.hp.com         //
//  Published          by  Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com      //
//                                                                                   //
//  FileName   : bitmapinfo.cpp						                                 //
//  Description: Wrapper for BITMAPINFO structure                                    //
//  Version    : 1.00.000, May 31, 2000                                              //
//-----------------------------------------------------------------------------------//

#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <assert.h>
#include <tchar.h>

#include "BitmapInfo.h"

const RGBQUAD StandardColorTable16[] = {
	{ 0x00, 0x00, 0x00, 0x00 }, 
	{ 0x00, 0x00, 0x80, 0x00 },
	{ 0x00, 0x80, 0x00, 0x00 },
	{ 0x00, 0x80, 0x80, 0x00 },
	{ 0x80, 0x00, 0x00, 0x00 },
	{ 0x80, 0x00, 0x80, 0x00 },
	{ 0x80, 0x80, 0x00, 0x00 },
	{ 0xC0, 0xC0, 0xC0, 0x00 },
	{ 0x80, 0x80, 0x80, 0x00 },
	{ 0x00, 0x00, 0xFF, 0x00 },
	{ 0x00, 0xFF, 0x00, 0x00 },
	{ 0x00, 0xFF, 0xFF, 0x00 },
	{ 0xFF, 0x00, 0x00, 0x00 },
	{ 0xFF, 0x00, 0xFF, 0x00 },
	{ 0xFF, 0xFF, 0x00, 0x00 },
	{ 0xFF, 0xFF, 0xFF, 0x00 }
};

// R G B
const DWORD StandardMask555[] =  { 0x007C00, 0x0003E0, 0x00001F };
const DWORD StandardMask565[] =  { 0x00F800, 0x0007E0, 0x00001F };
const DWORD StandardMask888[] =  { 0xFF0000, 0x00FF00, 0x0000FF };


void KBitmapInfo::SetFormat(int width, int height, int bitcount, int compression)
{
	// fill out BITMAPINFOHEADER based on size and required format
	memset(&m_dibinfo, 0, sizeof(m_dibinfo));

	m_dibinfo.bmiHeader.biSize        = sizeof(BITMAPINFOHEADER);
	m_dibinfo.bmiHeader.biWidth       = width;
	m_dibinfo.bmiHeader.biHeight      = height;
	m_dibinfo.bmiHeader.biPlanes      = 1;
	m_dibinfo.bmiHeader.biBitCount    = bitcount;
	m_dibinfo.bmiHeader.biCompression = compression;

	// set up standard palette
	switch ( bitcount )
	{
		case 2:
			m_dibinfo.bmiColors[0].rgbRed   = 0;	// black	
			m_dibinfo.bmiColors[0].rgbGreen = 0;
			m_dibinfo.bmiColors[0].rgbBlue  = 0;
			m_dibinfo.bmiColors[1].rgbRed   = 0xFF; // white
			m_dibinfo.bmiColors[1].rgbGreen = 0xFF;
			m_dibinfo.bmiColors[1].rgbBlue  = 0xFF;

		case 4:
			memcpy(m_dibinfo.bmiColors, StandardColorTable16, 16 * sizeof(RGBQUAD));
			break;

		case 8: // halftone palette with 6*6*6=216 colors
		{
			for (int blue =0; blue <6; blue ++)
			for (int green=0; green<6; green++)
			for (int red  =0; red  <6; red  ++)
			{
				int i = (blue * 6 + green) * 6 + red;

				m_dibinfo.bmiColors[i].rgbRed   = red   * 55;
				m_dibinfo.bmiColors[i].rgbGreen = green * 55;
				m_dibinfo.bmiColors[i].rgbBlue  = blue  * 55;
			}
			break;
		}

		case 16:
			if ( compression==BI_BITFIELDS )
				memcpy(m_dibinfo.bmiColors, StandardMask555, sizeof(StandardMask555));
			break;

		case 32:
			if ( compression==BI_BITFIELDS )
				memcpy(m_dibinfo.bmiColors, StandardMask888, sizeof(StandardMask888));
			break;
	}
}


void KBitmapInfo::SetGrayScale(DWORD mask)
{
	int nColor = 1 << m_dibinfo.bmiHeader.biBitCount;

	for (int i=0; i<nColor; i++)
	{
		m_dibinfo.bmiColors[i].rgbRed		= i & GetRValue(mask);
		m_dibinfo.bmiColors[i].rgbGreen		= i & GetGValue(mask);
		m_dibinfo.bmiColors[i].rgbBlue		= i & GetBValue(mask);
		m_dibinfo.bmiColors[i].rgbReserved  = 0;
	}		
}


BITMAPINFO * KBitmapInfo::CopyBMI(void) const
{
	int nColor;

	if ( m_dibinfo.bmiHeader.biCompression==BI_BITFIELDS )
		nColor = 3;
	else if ( m_dibinfo.bmiHeader.biBitCount <= 8 )
		nColor = 1 << m_dibinfo.bmiHeader.biBitCount;
	else
		nColor = 0;

	int nSize = sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * nColor;

	BITMAPINFO * pBMI = (BITMAPINFO *) new BYTE[nSize];

	if ( pBMI )
		memcpy(pBMI, & m_dibinfo, nSize);
	
	return pBMI;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品视频网站| 色一区在线观看| 亚洲成人777| 国产精品欧美久久久久无广告| 欧美性极品少妇| 丁香婷婷综合五月| 蜜臀va亚洲va欧美va天堂| 亚洲欧美一区二区三区国产精品| 久久一留热品黄| 欧美一卡在线观看| 色菇凉天天综合网| 成人精品在线视频观看| 久久精品国产网站| 五月综合激情网| 伊人开心综合网| 国产精品久久久久久久久搜平片 | 欧美日韩高清在线播放| 成人永久aaa| 国产一区在线视频| 久久精品久久久精品美女| 亚洲国产成人va在线观看天堂| 国产精品欧美一区二区三区| 久久精品视频在线看| 日韩你懂的在线播放| 777奇米成人网| 欧美国产激情二区三区| 欧美一区二区在线不卡| 欧美日本免费一区二区三区| 欧美影院午夜播放| 一本大道久久a久久综合婷婷| 不卡av免费在线观看| 成人性生交大合| 成人黄色国产精品网站大全在线免费观看 | 中文字幕一区二区三区不卡在线 | 精品美女在线播放| 欧美一区二区精品| 欧美一区永久视频免费观看| 欧美性生活久久| 欧美丝袜丝交足nylons图片| 欧美日韩精品专区| 制服丝袜国产精品| 欧美一区二区免费观在线| 欧美日韩国产123区| 91精品在线观看入口| 8v天堂国产在线一区二区| 欧美视频你懂的| 欧美日本精品一区二区三区| 欧美一区二区三区免费在线看 | 亚洲精品在线电影| 精品国产一区二区三区av性色| 日韩女优av电影在线观看| 精品国产乱码久久久久久蜜臀| 精品欧美乱码久久久久久1区2区| 精品国产麻豆免费人成网站| 久久久国际精品| 中文字幕 久热精品 视频在线| 国产精品进线69影院| 亚洲精品美腿丝袜| 亚洲第一成人在线| 久久精品国产第一区二区三区| 国产自产v一区二区三区c| 国产91富婆露脸刺激对白| 99久久夜色精品国产网站| 欧美视频在线一区| 日韩视频一区在线观看| 久久精品人人做人人综合| 国产精品久久久久久一区二区三区| 亚洲激情第一区| 日韩二区在线观看| 国产成人一区在线| 欧美又粗又大又爽| 亚洲精品在线观| 亚洲欧美电影一区二区| 日韩国产一二三区| 国产成人免费视| 欧美色电影在线| 欧美精品一区二区三区蜜桃 | 亚洲精品成人少妇| 麻豆一区二区99久久久久| 国产白丝网站精品污在线入口| 色爱区综合激月婷婷| 欧美一区二区三区的| 中文字幕一区二区三区色视频| 天天做天天摸天天爽国产一区| 国产精品一级二级三级| 欧美色倩网站大全免费| 免费成人av在线播放| 国产成人av一区二区| 欧美日免费三级在线| 国产三区在线成人av| 午夜久久久影院| 成人黄色片在线观看| 日韩视频在线永久播放| 亚洲三级电影网站| 国内精品视频666| 欧美伊人久久久久久午夜久久久久| 精品福利av导航| 亚洲国产精品一区二区尤物区| 国产精品69毛片高清亚洲| 欧美日本在线视频| 亚洲蜜桃精久久久久久久| 国产成人综合亚洲91猫咪| 这里是久久伊人| 又紧又大又爽精品一区二区| 国产毛片精品视频| 91精品国产综合久久久蜜臀粉嫩| 亚洲人xxxx| 成人爱爱电影网址| 国产午夜精品福利| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美亚洲精品一区| 中文字幕一区免费在线观看| 国产精品一区在线| 欧美xxxxxxxx| 另类欧美日韩国产在线| 91麻豆精品国产无毒不卡在线观看| 亚洲精品va在线观看| 91影院在线观看| 亚洲同性gay激情无套| 成人精品在线视频观看| 国产欧美一区二区精品性色超碰 | 91麻豆精品国产自产在线| 亚洲一区二区在线免费看| 色94色欧美sute亚洲线路一久| 日韩一区在线播放| 成人动漫中文字幕| 国产精品久久久久久久久久免费看 | 久久久久久久久久久电影| 久久精品99久久久| 精品国产乱码久久久久久夜甘婷婷 | 99久久国产综合精品色伊| 国产精品日日摸夜夜摸av| 国产精品亚洲专一区二区三区 | 欧美色图片你懂的| 亚洲小说春色综合另类电影| 欧美最猛黑人xxxxx猛交| 亚洲愉拍自拍另类高清精品| 精品视频色一区| 午夜亚洲福利老司机| 91精品国产一区二区三区蜜臀| 免费人成网站在线观看欧美高清| 日韩三级在线观看| 国产综合久久久久久鬼色| 国产三级精品视频| 成人午夜碰碰视频| 亚洲精品日日夜夜| 欧美喷水一区二区| 九九国产精品视频| 国产肉丝袜一区二区| 99re成人在线| 午夜精品久久久久久久 | 亚洲嫩草精品久久| 欧美午夜精品理论片a级按摩| 亚洲成av人片一区二区三区| 精品裸体舞一区二区三区| 国产一区二区日韩精品| 国产精品女同互慰在线看| 色哟哟国产精品免费观看| 日一区二区三区| 久久久www成人免费毛片麻豆 | 国产91精品久久久久久久网曝门| 亚洲欧美自拍偷拍| 欧美日韩精品系列| 国内外精品视频| 中文字幕一区二区三区在线不卡| 欧美体内she精高潮| 国内成+人亚洲+欧美+综合在线| 中文欧美字幕免费| 欧美另类z0zxhd电影| 国产精品1区2区3区在线观看| 18涩涩午夜精品.www| 在线不卡欧美精品一区二区三区| 精品无人码麻豆乱码1区2区| 亚洲女厕所小便bbb| 欧美刺激午夜性久久久久久久| 99久久精品99国产精品| 日本亚洲欧美天堂免费| 国产精品久久久久久久裸模| 8v天堂国产在线一区二区| 北岛玲一区二区三区四区| 日本欧美加勒比视频| 国产精品乱码久久久久久| 欧美一区二区二区| 色综合中文字幕| 国产精品一区二区在线播放| 亚洲成人中文在线| 国产精品色噜噜| 制服丝袜一区二区三区| av电影在线观看完整版一区二区| 热久久国产精品| 一区二区视频在线看| 久久久久久久久久久久电影 | 欧美日韩国产综合草草| 国产激情视频一区二区在线观看 | 99久久99久久综合| 免费av成人在线| 亚洲电影一区二区三区| 中文字幕一区二区三区四区不卡| 欧美精品一区二区三区蜜臀| 欧美美女激情18p|