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

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

?? dib.h

?? Windows 圖形編程 書籍
?? H
字號:
#pragma once

//-----------------------------------------------------------------------------------//
//              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   : dib.h						                                         //
//  Description: Device independent bitmap                                           //
//  Version    : 1.00.000, May 31, 2000                                              //
//-----------------------------------------------------------------------------------//

typedef enum 
{
	DIB_1BPP,			//   2 color image, palette-based
	DIB_2BPP,			//   4 color image, palttte-based
	DIB_4BPP,			//  16 color image, palette-based
	DIB_4BPPRLE,		//  16 color image, palette-based, RLE compressed
	DIB_8BPP,			// 256 color image, palette-based 
	DIB_8BPPRLE,		// 256 color image, palette-based, RLE compressed

	DIB_16RGB555,		// 15 bit RGB color image, 5-5-5
	DIB_16RGB565,		// 16 bit RGB color image, 5-6-5, 1 bit unused
	DIB_24RGB888,		// 24 bit RGB color image, 8-8-8
	DIB_32RGB888,		// 32 bit RGB color image, 8-8-8, 8 bit unused

	DIB_32RGBA8888,		// 32 bit RGBA color image, 8-8-8-8

	DIB_16RGBbitfields,	// 16 bit RGB color image, non-standard bit masks, NT-only
	DIB_32RGBbitfields,	// 32 bit RGB color image, non-standard bit masks, NT-only

	DIB_JPEG,			// embedded JPEG image
	DIB_PNG				// embedded PNG image
}  DIBFormat;


const TCHAR * PixelFormatName(int id);

typedef enum 
{
	DIB_BMI_NEEDFREE   = 1,
	DIB_BMI_READONLY   = 2,
	DIB_BITS_NEEDFREE  = 4,
	DIB_BITS_READONLY  = 8	
};

class KDIB
{
//	template <class Transform>
//		friend 	bool TransformDIB(CDIB * dib, Transform map);

public:
	DIBFormat	 m_nImageFormat;    // pixel array format
	int			 m_Flags;		 	// DIB_BMI_NEEDFREE, ....
	BITMAPINFO * m_pBMI;			// Bitmap Information Header + mask + color table
	BYTE       * m_pBits;			// pixel array

	RGBTRIPLE  * m_pRGBTRIPLE;		// OS/2 DIB color table within m_pBMI
	RGBQUAD    * m_pRGBQUAD;		// V3,4,5 DIB color table within m_pBMI
	int			 m_nClrUsed;		// No of color in color table
	int			 m_nClrImpt;		// Real color used
	DWORD	   * m_pBitFields;		// 16, 32-bpp masks within m_pBMI
	
	int			 m_nWidth;			// image pixel width
	int			 m_nHeight;			// image pixel height, positive
	int			 m_nPlanes;			// plane count
	int			 m_nBitCount;		// bit per plane
	int			 m_nColorDepth;		// bit count * plane count
	int			 m_nImageSize;		// pixel array size

									// Precalculated values
	int			 m_nBPS;			// byte per scan line, per plane
	BYTE *       m_pOrigin;			// point to logical origin
	int			 m_nDelta;			// delta to next scan line

	KDIB();						// default constructor, empty image
	virtual ~KDIB();			// virtual destructor

	BOOL Create(int width, int height, int bitcount);

	bool AttachDIB(BITMAPINFO * pDIB, BYTE * pBits, int flags);
	bool LoadFile(const TCHAR * pFileName);
	bool LoadBitmap(HMODULE hModlue, LPCTSTR pBitmapName);
	void ReleaseDIB(void);			// release memory

	int  GetWidth(void)		  const	{ return m_nWidth;  }
	int  GetHeight(void)	  const	{ return m_nHeight; }
	int  GetDepth(void)		  const { return m_nColorDepth; }
	BITMAPINFO * GetBMI(void) const { return m_pBMI; }
	BYTE * GetBits(void)	  const { return m_pBits; }
	int  GetBPS(void)		  const { return m_nBPS; }

	bool IsCompressed(void) const 
	{
		return (m_nImageFormat == DIB_4BPPRLE) ||
			   (m_nImageFormat == DIB_8BPPRLE) ||
			   (m_nImageFormat == DIB_JPEG) ||
			   (m_nImageFormat == DIB_PNG);
	}

	int  GetColorCount(void) const;

	int DrawDIB(HDC hDC, int dx, int dy, int dw, int dh, int sx, int sy, int sw, int sh, DWORD rop)
	{
		if ( m_pBMI )
			return ::StretchDIBits(hDC, dx, dy, dw, dh, sx, sy, sw, sh, 
				m_pBits, m_pBMI, DIB_RGB_COLORS, rop);
		else
			return GDI_ERROR;
	}

	int SetDIB(HDC hDC, int dx, int dy, int firstscan, int scanno, const BYTE * pBits)
	{
		if ( m_pBMI )
			return ::SetDIBitsToDevice(hDC, 
					dx, dy, m_nWidth, m_nHeight, 0, 0, firstscan, scanno, 
					pBits, m_pBMI, DIB_RGB_COLORS);
		else
			return GDI_ERROR;
	}

	HBITMAP ConvertToDDB(HDC hDC)
	{
		return CreateDIBitmap(hDC, & m_pBMI->bmiHeader, CBM_INIT, m_pBits,
					m_pBMI, DIB_RGB_COLORS);
	}

	void DecodeDIBFormat(TCHAR mess[]);
	BOOL SaveFile(const TCHAR * pFileName);

	// Pixel accessing
	DWORD GetPixelIndex(int x, int y) const;
	BOOL  SetPixelIndex(int x, int y, DWORD index);

	// transformation using GDI GetPixel/SetPixel
	BOOL PlgBltGetPixel(const POINT * pPoint, 
			HDC hSrc, int nXSrc, int nYSrc, int nWidth, int nHeight, HDC hDst);

	// transformation using GetPixelIndex/SetPixelIndex
	BOOL  PlgBlt(const POINT * pPoint, KDIB * pSrc, int nXSrc, int nYSrc, int nWidth, int nHeight);

	// transformation using inline function + integer only operations
	BOOL  PlgBlt24(const POINT * pPoint, KDIB * pSrc, int nXSrc, int nYSrc, int nWidth, int nHeight);

	typedef enum { method_gdi, method_direct, method_24bpp };
	HBITMAP TransformBitmap(XFORM * xm, COLORREF crBack, int method);
};

int GetDIBPixelSize(const BITMAPINFOHEADER & bmih);
int GetDIBColorCount(const BITMAPINFOHEADER & bmih);

BITMAPINFO * BitmapToDIB(HPALETTE hPal,	// palette for color conversion
				   HBITMAP  hBmp,							// DDB for convert
				   int		nBitCount, int nCompression);	// format wanted

int PixelFormat(HDC hdc);

void SaveWindowToDIB(HWND hWnd, int nBitCount, int nCompression);
BOOL SaveDIBToFile(const TCHAR * pFileName, const BITMAPINFO * pBMI, const void * pBits);


BOOL AlphaBlend3232(BITMAPINFO * pBMIDst, BYTE * pBitsDst, int dx, int dy, int w, int h,
				    BITMAPINFO * pBMISrc, BYTE * pBitsSrc, int sx, int sy,
				    BLENDFUNCTION blend);

// AlphaBlending a 32-bpp DIB to hdc
BOOL AlphaBlend(HDC hdc, int x0, int y0, const BITMAPINFO *pbmpInfo, const void * pAlphaImageData);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲美州欧州综合国| 欧美大片一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 久久久久国产精品人| 欧美视频你懂的| 国产一区 二区| 亚欧色一区w666天堂| 国产午夜亚洲精品羞羞网站| 欧美欧美欧美欧美首页| 成人av网站在线| 美腿丝袜亚洲一区| 亚洲成av人片一区二区| 欧美国产日韩一二三区| 日韩欧美中文字幕精品| 欧美在线你懂得| 国产传媒久久文化传媒| 麻豆一区二区三区| 亚洲成人资源网| 日韩理论电影院| 国产丝袜在线精品| 精品免费日韩av| 日韩一区二区三区视频在线| 欧美色图天堂网| 97久久久精品综合88久久| 成人午夜又粗又硬又大| 国产一区二区在线观看视频| 日本vs亚洲vs韩国一区三区二区| 亚洲激情自拍视频| 亚洲精品成人少妇| 亚洲精品亚洲人成人网| 综合久久综合久久| 成人欧美一区二区三区视频网页 | 久久久.com| 欧美一区二区日韩一区二区| 欧美日韩视频专区在线播放| 一本色道综合亚洲| www.在线成人| 成人在线视频一区二区| 波多野结衣中文字幕一区| 国产成人午夜电影网| 黑人巨大精品欧美一区| 精品一区二区三区久久| 久久av资源站| 国产精品亚洲午夜一区二区三区| 精品一区二区免费看| 开心九九激情九九欧美日韩精美视频电影| 日韩av一区二区三区| 美国十次了思思久久精品导航| 日韩国产精品久久| 蜜桃精品视频在线| 国产一区二区三区精品视频| 国产成人亚洲综合a∨婷婷图片| 粉嫩在线一区二区三区视频| 99精品桃花视频在线观看| 日本久久一区二区三区| 欧美午夜片在线看| 日韩欧美一级精品久久| 久久免费看少妇高潮| 国产精品伦理在线| 亚洲欧美二区三区| 亚洲无线码一区二区三区| 五月开心婷婷久久| 蜜臂av日日欢夜夜爽一区| 国产成人亚洲综合a∨婷婷图片 | 欧美日韩成人综合| 91麻豆精品国产自产在线 | 成人免费看片app下载| 色综合天天综合狠狠| 欧美日韩精品电影| 久久亚洲欧美国产精品乐播| 中文字幕av一区二区三区免费看| 亚洲免费在线视频| 首页亚洲欧美制服丝腿| 国产在线精品一区二区夜色 | 久久久久久**毛片大全| 专区另类欧美日韩| 亚洲成av人**亚洲成av**| 久久精品国产亚洲5555| jizzjizzjizz欧美| 欧美精品18+| 国产日韩欧美不卡| 偷窥国产亚洲免费视频| 国产a视频精品免费观看| 在线视频国内一区二区| 亚洲精品一区二区三区福利| 亚洲色图在线看| 日本欧美久久久久免费播放网| 大尺度一区二区| 欧美三级电影在线看| 久久亚洲欧美国产精品乐播| 亚洲男人的天堂av| 国产一区在线观看视频| 色视频欧美一区二区三区| 久久久久青草大香线综合精品| 亚洲成人久久影院| 国产成人综合自拍| 91精品国产综合久久婷婷香蕉| 成人欧美一区二区三区1314| 老司机精品视频一区二区三区| 色8久久精品久久久久久蜜| 国产午夜精品久久久久久久 | 日本伊人午夜精品| 色婷婷综合久久久久中文一区二区 | 国模娜娜一区二区三区| 欧美日免费三级在线| 久久久久成人黄色影片| 免费欧美日韩国产三级电影| 欧洲色大大久久| 国产精品你懂的| 狠狠色狠狠色综合| 欧美精品一二三四| 亚洲综合色噜噜狠狠| 成人av集中营| 久久精品亚洲国产奇米99| 日韩国产欧美三级| 欧美丝袜丝交足nylons图片| ㊣最新国产の精品bt伙计久久| 国产精品一区专区| 欧美成人午夜电影| 免费精品99久久国产综合精品| 在线中文字幕一区| 亚洲精品视频一区二区| www.在线欧美| 国产精品激情偷乱一区二区∴| 国产成人综合网站| 久久久久88色偷偷免费| 久久成人麻豆午夜电影| 欧美丰满美乳xxx高潮www| 一个色综合网站| 在线观看视频91| 亚洲高清免费观看| 欧美中文一区二区三区| 亚洲图片欧美视频| 欧美特级限制片免费在线观看| 亚洲一区二区三区在线| 欧美日韩免费观看一区二区三区| 一区二区三区在线播放| 在线免费观看日本欧美| 午夜精品在线看| 91精品国产aⅴ一区二区| 日韩电影在线免费看| 7777精品伊人久久久大香线蕉完整版 | 日本不卡不码高清免费观看| 欧美一区二区免费| 久久se精品一区二区| 精品国产免费视频| 国产麻豆精品在线观看| 中文字幕av一区二区三区免费看 | 国产一区二区三区在线观看免费 | av在线播放一区二区三区| 中文在线一区二区| 91在线云播放| 亚洲一区在线看| 777xxx欧美| 国产高清视频一区| 国产精品久久久99| 在线视频一区二区三区| 性欧美疯狂xxxxbbbb| 欧美一区二区三区在线视频 | 精彩视频一区二区三区| 久久精品一区八戒影视| 99久久久久久| 丝袜美腿亚洲一区二区图片| 精品国产乱码久久久久久夜甘婷婷| 国产一区二区三区在线观看免费视频 | 欧美tickle裸体挠脚心vk| 精品一区二区在线视频| 国产精品拍天天在线| 欧美影院精品一区| 久久国产人妖系列| 国产精品女主播在线观看| 欧美亚洲免费在线一区| 美国av一区二区| 国产夜色精品一区二区av| 91免费观看在线| 日韩av电影免费观看高清完整版| 欧美精品一区二区不卡| 色琪琪一区二区三区亚洲区| 精品一区二区日韩| 亚洲人一二三区| 精品少妇一区二区三区日产乱码| 波波电影院一区二区三区| 日欧美一区二区| 亚洲欧洲韩国日本视频| 欧美一区二区视频在线观看2022 | 亚洲免费高清视频在线| 日韩欧美国产综合| a4yy欧美一区二区三区| 秋霞影院一区二区| 最近日韩中文字幕| 精品国产91洋老外米糕| 在线一区二区三区四区五区| 麻豆成人在线观看| 一区二区三区不卡视频| 久久精品免费在线观看| 欧美一区二区三区四区视频| 91丨九色porny丨蝌蚪| 久久精品国产77777蜜臀| 一区二区在线观看视频| 国产欧美1区2区3区|