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

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

?? ximage.h

?? 車牌定位c++源碼,本人編輯的地方車輛號牌識別.
?? H
字號:
/*
 * File:	ximage.h
 * Purpose:	General Purpose Image Class 
 */
/* === C R E D I T S  &  D I S C L A I M E R S ==============
 * Permission is given by the author to freely redistribute and include
 * this code in any program as long as this credit is given where due.
 *
 * CxImage (c)  07/Aug/2001 <ing.davide.pizzolato@libero.it>
 * version 2.00 27/Dec/2001
 * See the file history.htm for the complete bugfix and news report.
 *
 * Special thanks to Troels Knakkergaard for new features, enhancements and bugfixes
 *
 * original CImage and CImageIterator implementation are:
 * Copyright:	(c) 1995, Alejandro Aguilar Sierra <asierra@servidor.unam.mx>
 *
 * COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
 * OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
 * THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
 * OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
 * CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
 * THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
 * SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
 * PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
 * THIS DISCLAIMER.
 *
 * Use at your own risk!
 * ==========================================================
 */
#if !defined(AFX_MYFXIMAGE_H)
#define AFX_MYFXIMAGE_H

#if _MSC_VER > 1000
#pragma once
#endif 

//#include <afxwin.h>		// needed by the specific platform
#include <windows.h>
//#include <tchar.h>
#include <stdio.h>
#include <math.h>

/////////////////////////////////////////////////////////////////////////////
// CxImage supported formats
#define CXIMAGE_SUPPORT_BMP 1
#define CXIMAGE_SUPPORT_GIF 1
#define CXIMAGE_SUPPORT_JPG 1
#define CXIMAGE_SUPPORT_PNG 0
#define CXIMAGE_SUPPORT_MNG 0
#define CXIMAGE_SUPPORT_ICO 1
#define CXIMAGE_SUPPORT_TIF 0
#define CXIMAGE_SUPPORT_TGA 0

/////////////////////////////////////////////////////////////////////////////
// CxImage formats enumerator
enum {
#if CXIMAGE_SUPPORT_BMP
CXIMAGE_FORMAT_BMP,
#endif
#if CXIMAGE_SUPPORT_GIF
CXIMAGE_FORMAT_GIF,
#endif
#if CXIMAGE_SUPPORT_JPG
CXIMAGE_FORMAT_JPG,
#endif
#if CXIMAGE_SUPPORT_PNG
CXIMAGE_FORMAT_PNG,
#endif
#if CXIMAGE_SUPPORT_MNG
CXIMAGE_FORMAT_MNG,
#endif
#if CXIMAGE_SUPPORT_ICO
CXIMAGE_FORMAT_ICO,
#endif
#if CXIMAGE_SUPPORT_TIF
CXIMAGE_FORMAT_TIF,
#endif
#if CXIMAGE_SUPPORT_TGA
CXIMAGE_FORMAT_TGA,
#endif
CMAX_IMAGE_FORMATS
};

// needed for png & gif
struct rgb_color_struct { BYTE r,g,b; };
// needed for png & mng
#define COLORTYPE_PALETTE	1
#define COLORTYPE_COLOR		2
#define COLORTYPE_ALPHA		4

#define RGB2GRAY(r,g,b) ((b*11 + g*59 + r*30)/100) //color to grey mapping

/////////////////////////////////////////////////////////////////////////////
// CxImage class
/////////////////////////////////////////////////////////////////////////////
class CxImage
{
//extensible information collector
typedef struct tagCxImageInfo {
	DWORD	dwEffWidth;			//DWORD aligned scan line width
	BYTE*	pImage;				//THE IMAGE BITS
	void*	pGhost;				//if this is a ghost, pGhost point to the body
	DWORD	dwType;				//original image format
	BYTE	bColorType;			//used for PNG, MNG
	char	szLastError[256];	//debugging
	long	nProgress;			//monitor
	long	nEscape;			//escape
	long	nBkgndIndex;		//used for GIF, PNG, MNG
	RGBQUAD nBkgndColor;		//used for RGB transparency
	BYTE	nQuality;			//used for JPEG
	long	nFrame;				//used for TIF, GIF, MNG : actual frame
	long	nNumFrames;			//used for TIF, GIF, MNG : total number of frames
	DWORD	dwFrameDelay;		//used for GIF, MNG
	long	xDPI;				//horizontal resolution
	long	yDPI;				//vertical resolution
} CXIMAGEINFO;

public:
	//constructors
	CxImage(DWORD imagetype = 0);
	CxImage(DWORD dwWidth, DWORD dwHeight, WORD wBpp, DWORD imagetype = 0);
	CxImage(const CxImage &isrc);
	CxImage(const char * filename, DWORD imagetype);
	CxImage(FILE * stream, DWORD imagetype);
	virtual ~CxImage();
	CxImage& operator = (CxImage);

	//initializzation
	void*	Create(DWORD dwWidth, DWORD dwHeight, WORD wBpp, DWORD imagetype = 0);
	void	CreateFromHBITMAP(HBITMAP hbmp);	//Windows resource
	void	CreateFromHANDLE(HANDLE hMem);		//Windows objects (clipboard)
	void	Clear(BYTE bval=0);
	void	Copy(const CxImage &src);
	HANDLE	CopyToHandle();
	void	Transfer(CxImage &from);
	HBITMAP MakeBitmap(HDC hdc);

	//Attributes
	long	GetSize();
	BYTE*	GetBits();
	HANDLE	GetDIB()		const {return hDib;}
	DWORD	GetHeight()		const {return head.biHeight;}
	DWORD	GetWidth()		const {return head.biWidth;}
	DWORD	GetEffWidth()	const {return info.dwEffWidth;}
	DWORD	GetNumColors()	const {return head.biClrUsed;}
	BYTE	GetColorType()	const {return info.bColorType;}
	WORD	GetBpp()		const {return head.biBitCount;}
	DWORD	GetType()		const {return info.dwType;}
	BYTE	GetJpegQuality() const {return info.nQuality;}
	long	GetXDPI()		const {return info.xDPI;}
	long	GetYDPI()		const {return info.yDPI;}
	LPSTR	GetLastError()	{return info.szLastError;}
	void	SetJpegQuality(BYTE q) {info.nQuality = q;}
	void	SetXDPI(long dpi);
	void	SetYDPI(long dpi);

	long	GetProgress()	const {return info.nProgress;}
	long	GetEscape()     const {return info.nEscape;}
	void	SetProgress(long p) {info.nProgress = p;}
	void	SetEscape(long i)   {info.nEscape = i;}

	long	GetTransIndex()	const {return info.nBkgndIndex;}
	RGBQUAD	GetTransColor();
	void	SetTransIndex(long idx) {info.nBkgndIndex = idx;}
	void	SetTransColor(RGBQUAD rgb) {info.nBkgndColor = rgb;}

	//palette operations
	bool	IsGrayScale();
	DWORD	GetPaletteSize();
	RGBQUAD* GetPalette() const;
	RGBQUAD GetPaletteColor(BYTE idx);
	bool	GetRGB(int i, BYTE* r, BYTE* g, BYTE* b);
	BYTE	GetNearestIndex(RGBQUAD c);
	void	BlendPalette(COLORREF cr,long perc);
	void	SetGrayPalette();
	void	SetPalette(DWORD n, BYTE *r, BYTE *g, BYTE *b);
	void	SetPalette(RGBQUAD* pPal,DWORD nColors=256);
	void	SetPalette(rgb_color_struct *rgb,DWORD nColors=256);
	void	SetPaletteIndex(BYTE idx, BYTE r, BYTE g, BYTE b);
	void	SetPaletteIndex(BYTE idx, RGBQUAD c);
	void	SetPaletteIndex(BYTE idx, COLORREF cr);
	void	SwapIndex(BYTE idx1, BYTE idx2);
	void	SetStdPalette();
	void	HuePalette(float correction=1);

	//pixel operations
	bool	IsInside(long x, long y);
	BYTE	GetPixelIndex(long x,long y);
	RGBQUAD GetPixelColor(long x,long y);
	void	SetPixelColor(long x,long y,RGBQUAD c);
	void	SetPixelIndex(long x,long y,BYTE i);
	void	SetPixelColor(long x,long y,COLORREF cr);

	//painting operations
	long	Draw(HDC pDC, long x=0, long y=0, long cx = -1, long cy = -1);
	long	Draw(HDC hdc, const RECT& rect) { return Draw(hdc, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); }
	long	Stretch(HDC pDC, long xoffset, long yoffset, long xsize, long ysize);
	long	Stretch(HDC hdc, const RECT& rect) { return Stretch(hdc, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); }
	long	Tile(HDC pDC, RECT *rc);
//	long	Print(HDC pDC, long x=0, long y=0, long cx = -1, long cy = -1);
//	long	Print(HDC hdc, const RECT& rect) { return Print(hdc, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); }

	//color conversion utilities
	RGBQUAD HSLtoRGB(COLORREF cHSLColor);
	RGBQUAD RGBtoRGBQUAD(COLORREF cr);
	COLORREF RGBQUADtoRGB (RGBQUAD c);
	RGBQUAD RGBtoHSL(RGBQUAD lRGBColor);
	RGBQUAD HSLtoRGB(RGBQUAD lHSLColor);
	RGBQUAD YUVtoRGB(RGBQUAD lYUVColor);
	RGBQUAD RGBtoYUV(RGBQUAD lRGBColor);
	void	RGBtoBGR(BYTE *buffer, int length);

	// file operations
	bool SaveFile(const char * filename, DWORD imagetype=0);
	bool ReadFile(const char * filename, DWORD imagetype=0);
	bool SaveFile(LPCWSTR filename, DWORD imagetype=0);
	bool ReadFile(LPCWSTR filename, DWORD imagetype=0);
	bool LoadResource(HRSRC hRes, DWORD imagetype, HMODULE hModule=NULL);
	bool Decode(FILE * hFile, DWORD imagetype);
	bool Encode(FILE * hFile, DWORD imagetype);

	// image operations
	bool IsValid();
	bool Flip();
	bool Mirror();
	bool Negative();
	bool GrayScale();
	bool Rotate(float angle, CxImage* iDst = NULL);
	bool Resample(long newx, long newy, int fast = 1);
	bool DecreaseBpp(DWORD nbit, RGBQUAD* ppal = 0);
	bool IncreaseBpp(DWORD nbit);
	bool Dither(long method = 0);
	bool Threshold(BYTE level);
	bool Crop(long left, long top, long right, long bottom, CxImage* iDst = NULL);
	bool SplitRGB(CxImage* r,CxImage* g,CxImage* b);
	bool SplitYUV(CxImage* y,CxImage* u,CxImage* v);
	bool SplitHSL(CxImage* h,CxImage* s,CxImage* l);
	bool Colorize(BYTE hue, BYTE sat);
	bool Light(long level, long contrast=100);
	float Mean();
	bool Filter(long* kernel, long Ksize, long Kfactor, long Koffset);
	bool Erode(long Ksize=2);
	bool Dilate(long Ksize=2);

	// frame operations
	long GetNumFrames() const {return info.nNumFrames;}
	long GetFrame() const {return info.nFrame;}
	void SetFrame(long nFrame) {info.nFrame=nFrame;} 

protected:
	void Startup(DWORD imagetype = 0);
	void Ghost(CxImage *src);
	WORD HueToRGB(WORD n1,WORD n2,WORD hue);
	void Bitfield2RGB(BYTE *src, WORD redmask, WORD greenmask, WORD bluemask, BYTE bpp);
	bool DrawTransparentBitmap(HDC pDC, HBITMAP bmpMask, int xDst, int yDst,
						int cxDst,int cyDst,HDC pTmpDC,int cxSrc,int cySrc);

	void*				hDib; //contains the header, the palette, the pixels
    BITMAPINFOHEADER    head; //stadnard header
	CXIMAGEINFO			info; //extended information
};
////////////////////////////////////////////////////////////////////////////
#endif // !defined(AFX_MYFXIMAGE_H)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日本在线| 国产精品视频九色porn| 337p日本欧洲亚洲大胆精品| 亚洲成人自拍一区| 在线精品视频免费播放| 亚洲色图在线播放| 国产色产综合产在线视频| 国产精品久久影院| voyeur盗摄精品| 青青草国产精品97视觉盛宴| 亚洲日本韩国一区| 久久久91精品国产一区二区三区| 91丝袜美女网| 岛国一区二区三区| 午夜精品免费在线观看| 136国产福利精品导航| 国产欧美综合在线观看第十页| 欧美日韩dvd在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 精品一二三四在线| 麻豆一区二区99久久久久| 亚洲国产欧美另类丝袜| 亚洲欧美成人一区二区三区| 中文字幕第一页久久| 国产欧美一区在线| 精品sm捆绑视频| 精品国产成人在线影院| 日韩欧美国产三级| 欧美一区二区免费观在线| 欧美精品丝袜中出| 欧美日韩视频第一区| 欧美亚洲日本国产| 在线观看免费亚洲| 欧美色视频在线| 欧美精品在线观看一区二区| 欧美日本韩国一区| 欧美一区日韩一区| 日韩一区二区三区免费观看| 日韩久久免费av| 日韩欧美资源站| 久久久亚洲午夜电影| 久久精品亚洲麻豆av一区二区| 久久久久久久网| 国产精品色哟哟网站| 最新热久久免费视频| 伊人一区二区三区| 亚洲午夜一区二区三区| 日韩电影在线观看一区| 精品亚洲国产成人av制服丝袜| 久88久久88久久久| 国产成人免费视频| 99久久国产综合色|国产精品| 一本久久精品一区二区| 精品视频在线看| 日韩精品一区二区在线观看| 久久婷婷国产综合精品青草| 国产精品乱人伦一区二区| 亚洲猫色日本管| 天天爽夜夜爽夜夜爽精品视频| 日韩电影在线一区二区三区| 国产在线不卡一区| 91免费国产在线| 欧美日韩国产成人在线免费| 欧美xxxxx裸体时装秀| 欧美国产欧美综合| 亚洲综合小说图片| 日韩不卡一二三区| 国产成人免费网站| 欧美三级电影在线看| 26uuu亚洲综合色欧美| 亚洲欧美中日韩| 亚洲一区二区美女| 国产精品一级二级三级| 日本乱人伦一区| 欧美成人bangbros| 亚洲欧美国产三级| 久久99精品久久久| 色丁香久综合在线久综合在线观看| 日韩一区二区在线看| 国产精品不卡视频| 亚洲成a天堂v人片| 成人免费毛片高清视频| 欧美精品一二三区| **欧美大码日韩| 国内外成人在线| 91福利精品视频| 国产亚洲精品超碰| 亚洲大片在线观看| 成人av手机在线观看| 欧美一激情一区二区三区| 亚洲欧美日韩在线播放| 国产综合成人久久大片91| 在线观看一区日韩| 五月婷婷色综合| 粉嫩13p一区二区三区| 91精品在线麻豆| 亚洲欧洲精品天堂一级| 激情综合色综合久久| 色www精品视频在线观看| 久久久www成人免费毛片麻豆| 亚洲国产精品麻豆| 91猫先生在线| 国产日本一区二区| 精品一区二区久久久| 欧美日本视频在线| 亚洲最新在线观看| 成人av免费观看| 久久久不卡影院| 久久av资源站| 欧美一区日本一区韩国一区| 亚洲一级二级三级在线免费观看| 成人国产亚洲欧美成人综合网| 欧美成人vps| 日韩av一区二区在线影视| 在线免费观看一区| 综合中文字幕亚洲| 不卡高清视频专区| 国产午夜亚洲精品理论片色戒| 秋霞国产午夜精品免费视频| 欧美日韩视频在线第一区| 一片黄亚洲嫩模| 一本久道中文字幕精品亚洲嫩| 国产精品你懂的| eeuss鲁一区二区三区| 国产欧美精品一区二区色综合| 国产在线麻豆精品观看| 亚洲精品一区在线观看| 国模无码大尺度一区二区三区| 日韩女优av电影在线观看| 免费成人在线视频观看| 日韩美女天天操| 国产最新精品免费| 久久综合给合久久狠狠狠97色69| 看片的网站亚洲| 精品黑人一区二区三区久久| 久久69国产一区二区蜜臀| 日韩精品一区二区三区中文不卡 | 亚洲一区二区成人在线观看| 色综合久久综合网欧美综合网| 中文字幕一区二区三区不卡在线 | 欧美96一区二区免费视频| 欧美另类高清zo欧美| 日韩精品五月天| 日韩欧美亚洲国产另类| 久久se精品一区精品二区| 国产亚洲欧美激情| 成人教育av在线| 亚洲女人****多毛耸耸8| 欧洲中文字幕精品| 日韩成人免费在线| 久久精品夜色噜噜亚洲aⅴ| 成人性生交大片免费| 亚洲视频综合在线| 欧美伦理电影网| 国产一区 二区 三区一级| 国产精品久久久一本精品| 色94色欧美sute亚洲13| 奇米精品一区二区三区在线观看| 亚洲午夜影视影院在线观看| 91精品国产色综合久久不卡电影 | 亚洲三级电影网站| 欧美在线观看视频一区二区三区| 婷婷丁香久久五月婷婷| 337p粉嫩大胆色噜噜噜噜亚洲| 成人97人人超碰人人99| 亚洲第一av色| 日本一区二区三区免费乱视频| 色婷婷综合久色| 久久精品国产一区二区三区免费看| 中文字幕欧美激情一区| 欧美亚洲动漫精品| 国产在线精品国自产拍免费| 亚洲视频一区二区免费在线观看| 欧美日本乱大交xxxxx| 国产99久久久国产精品| 亚洲电影第三页| 国产精品午夜电影| 777色狠狠一区二区三区| 粉嫩av亚洲一区二区图片| 午夜欧美在线一二页| 国产欧美日韩麻豆91| 欧美久久婷婷综合色| 成人avav在线| 精品一区二区影视| 一区二区三区免费网站| 久久综合五月天婷婷伊人| 欧美视频在线一区二区三区 | 色噜噜狠狠色综合欧洲selulu| 琪琪久久久久日韩精品| 亚洲欧美一区二区三区国产精品| 欧美变态口味重另类| 欧美性大战久久久| 成人午夜视频在线| 久久国产三级精品| 五月婷婷久久综合| 一区二区三区自拍| 国产精品系列在线| 久久亚洲一级片| 欧美电影免费观看高清完整版在线观看| 99久久99久久精品免费观看|