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

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

?? ximage.h

?? 君正早期ucos系統(只有早期的才不沒有打包成庫),MPLAYER,文件系統,圖片解碼,瀏覽,電子書,錄音,想學ucos,識貨的人就下吧 russblock fmradio explore set
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
 * File:	ximage.h
 * Purpose:	General Purpose Image Class 
 */
/*
  --------------------------------------------------------------------------------

	COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:

	CxImage version 5.99c 17/Oct/2004

	CxImage : Copyright (C) 2001 - 2004, Davide Pizzolato

	Original CImage and CImageIterator implementation are:
	Copyright (C) 1995, Alejandro Aguilar Sierra (asierra(at)servidor(dot)unam(dot)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.

	Permission is hereby granted to use, copy, modify, and distribute this
	source code, or portions hereof, for any purpose, including commercial applications,
	freely and without fee, subject to the following restrictions: 

	1. The origin of this software must not be misrepresented; you must not
	claim that you wrote the original software. If you use this software
	in a product, an acknowledgment in the product documentation would be
	appreciated but is not required.

	2. Altered source versions must be plainly marked as such, and must not be
	misrepresented as being the original software.

	3. This notice may not be removed or altered from any source distribution.

  --------------------------------------------------------------------------------

	Other information: about CxImage, and the latest version, can be found at the
	CxImage home page: http://www.xdp.it

  --------------------------------------------------------------------------------
 */
#if !defined(__CXIMAGE_H)
#define __CXIMAGE_H

#if _MSC_VER > 1000
#pragma once
#endif 

/////////////////////////////////////////////////////////////////////////////
#include "xfile.h"
#include "xiofile.h"
#include "xmemfile.h"
#include "ximadef.h"	//<vho> adjust some #define
#if CXIMAGE_SUPPORT_UCOS 
typedef struct _SCRINFO
{
    unsigned short w;
    unsigned short h;
    unsigned int* buffer;
} SCRINFO;
#define throw_print printf
#endif
/* see "ximacfg.h" for CxImage configuration options */

/////////////////////////////////////////////////////////////////////////////
// CxImage formats enumerator
enum ENUM_CXIMAGE_FORMATS{
CXIMAGE_FORMAT_UNKNOWN,
#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
#if CXIMAGE_SUPPORT_PCX
CXIMAGE_FORMAT_PCX,
#endif
#if CXIMAGE_SUPPORT_WBMP
CXIMAGE_FORMAT_WBMP,
#endif
#if CXIMAGE_SUPPORT_WMF
CXIMAGE_FORMAT_WMF,
#endif
#if CXIMAGE_SUPPORT_J2K
CXIMAGE_FORMAT_J2K,
#endif
#if CXIMAGE_SUPPORT_JBG
CXIMAGE_FORMAT_JBG,
#endif
#if CXIMAGE_SUPPORT_JP2
CXIMAGE_FORMAT_JP2,
#endif
#if CXIMAGE_SUPPORT_JPC
CXIMAGE_FORMAT_JPC,
#endif
#if CXIMAGE_SUPPORT_PGX
CXIMAGE_FORMAT_PGX,
#endif
#if CXIMAGE_SUPPORT_PNM
CXIMAGE_FORMAT_PNM,
#endif
#if CXIMAGE_SUPPORT_RAS
CXIMAGE_FORMAT_RAS,
#endif
CMAX_IMAGE_FORMATS
};

/////////////////////////////////////////////////////////////////////////////
// CxImage class
/////////////////////////////////////////////////////////////////////////////
class DLL_EXP CxImage :public CImageMemMgr
{
//extensible information collector
typedef struct tagCxImageInfo {
	DWORD	dwEffWidth;			///< DWORD aligned scan line width
	BYTE*	pImage;				///< THE IMAGE BITS
	CxImage* pGhost;			///< if this is a ghost, pGhost points to the body
	CxImage* pParent;			///< if this is a layer, pParent points to the body
	DWORD	dwType;				///< original image format
	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
	BYTE	nJpegScale;			///< used for JPEG [ignacio]
	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
	RECT	rSelectionBox;		///< bounding rectangle
	BYTE	nAlphaMax;			///< max opacity (fade)
	bool	bAlphaPaletteEnabled; ///< true if alpha values in the palette are enabled.
	bool	bEnabled;			///< enables the painting functions
	long	xOffset;
	long	yOffset;
	DWORD	dwCodecOpt[CMAX_IMAGE_FORMATS];	///< for GIF, TIF : 0=def.1=unc,2=fax3,3=fax4,4=pack,5=jpg
	RGBQUAD last_c;				///< for GetNearestIndex optimization
	BYTE	last_c_index;
	bool	last_c_isvalid;
	long	nNumLayers;
	DWORD	dwFlags;			///< 0x??00000 = reserved, 0x00??0000 = blend mode, 0x0000???? = layer id - user flags

} CXIMAGEINFO;

public:
	//public structures
struct rgb_color { BYTE r,g,b; };

#if CXIMAGE_SUPPORT_WINDOWS
// <VATI> text placement data
// members must be initialized with the InitTextInfo(&this) function.
typedef struct tagCxTextInfo
{
	TCHAR    text[4096]; ///< text (char -> TCHAR for UNICODE [Cesar M])
	LOGFONT  lfont;      ///< font and codepage data
    COLORREF fcolor;     ///< foreground color
    long     align;      ///< DT_CENTER, DT_RIGHT, DT_LEFT aligment for multiline text
    BYTE     opaque;     ///< text has background or hasn't. Default is true.
						 ///< data for background (ignored if .opaque==FALSE) 
    COLORREF bcolor;     ///< background color
    float    b_opacity;  ///< opacity value for background between 0.0-1.0 Default is 0. (opaque)
    BYTE     b_outline;  ///< outline width for background (zero: no outline)
    BYTE     b_round;    ///< rounding radius for background rectangle. % of the height, between 0-50. Default is 10.
                         ///< (backgr. always has a frame: width = 3 pixel + 10% of height by default.)
} CXTEXTINFO;
#endif

public:
/** \addtogroup Constructors */ //@{
	CxImage(DWORD imagetype = 0);
	CxImage(DWORD dwWidth, DWORD dwHeight, DWORD wBpp, DWORD imagetype = 0);
	CxImage(const CxImage &src, bool copypixels = true, bool copyselection = true, bool copyalpha = true);
	CxImage(const TCHAR * filename, DWORD imagetype);	// For UNICODE support: char -> TCHAR
	CxImage(FILE * stream, DWORD imagetype);
	CxImage(CxFile * stream, DWORD imagetype);
	CxImage(BYTE * buffer, DWORD size, DWORD imagetype);
	virtual ~CxImage() { Destroy(); };
	CxImage& operator = (const CxImage&);
//@}

/** \addtogroup Initialization */ //@{
	void*	Create(DWORD dwWidth, DWORD dwHeight, DWORD wBpp, DWORD imagetype = 0);
	bool	Destroy();
	void	Clear(BYTE bval=0);
	void	Copy(const CxImage &src, bool copypixels = true, bool copyselection = true, bool copyalpha = true);
	bool	Transfer(CxImage &from);
	bool	CreateFromArray(BYTE* pArray,DWORD dwWidth,DWORD dwHeight,DWORD dwBitsperpixel, DWORD dwBytesperline, bool bFlipImage);
	bool	CreateFromMatrix(BYTE** ppMatrix,DWORD dwWidth,DWORD dwHeight,DWORD dwBitsperpixel, DWORD dwBytesperline, bool bFlipImage);
	void	FreeMemory(void* memblock);
//@}

/** \addtogroup Attributes */ //@{
	long	GetSize();
	BYTE*	GetBits(DWORD row = 0);
	BYTE	GetColorType();
	void*	GetDIB() const;
	DWORD	GetHeight() const;
	DWORD	GetWidth() const;
	DWORD	GetEffWidth() const;
	DWORD	GetNumColors() const;
	WORD	GetBpp() const;
	DWORD	GetType() const;
	const char*	GetLastError();
	const TCHAR* GetVersion();
	const float GetVersionNumber();

	DWORD	GetFrameDelay() const;
	void	SetFrameDelay(DWORD d);

	void	GetOffset(long *x,long *y);
	void	SetOffset(long x,long y);

	BYTE	GetJpegQuality() const;
	void	SetJpegQuality(BYTE q);

	BYTE	GetJpegScale() const;
	void	SetJpegScale(BYTE q);

	long	GetXDPI() const;
	long	GetYDPI() const;
	void	SetXDPI(long dpi);
	void	SetYDPI(long dpi);

	DWORD	GetClrImportant() const;
	void	SetClrImportant(DWORD ncolors = 0);

	long	GetProgress() const;
	long	GetEscape() const;
	void	SetProgress(long p);
	void	SetEscape(long i);

	long	GetTransIndex() const;
	RGBQUAD	GetTransColor();
	void	SetTransIndex(long idx);
	void	SetTransColor(RGBQUAD rgb);
	bool	IsTransparent() const;

	DWORD	GetCodecOption(DWORD imagetype = 0);
	bool	SetCodecOption(DWORD opt, DWORD imagetype = 0);

	DWORD	GetFlags() const;
	void	SetFlags(DWORD flags, bool bLockReservedFlags = true);

	//void*	GetUserData() const {return info.pUserData;}
	//void	SetUserData(void* pUserData) {info.pUserData = pUserData;}
//@}

/** \addtogroup Palette
 * These functions have no effects on RGB images and in this case the returned value is always 0.
 * @{ */
	bool	IsGrayScale();
	bool	IsIndexed() const;
	bool	IsSamePalette(CxImage &img, bool bCheckAlpha = true);
	DWORD	GetPaletteSize();
	RGBQUAD* GetPalette() const;
	RGBQUAD GetPaletteColor(BYTE idx);
	bool	GetPaletteColor(BYTE 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 *rgb,DWORD nColors=256);
	void	SetPaletteColor(BYTE idx, BYTE r, BYTE g, BYTE b, BYTE alpha=0);
	void	SetPaletteColor(BYTE idx, RGBQUAD c);
	void	SetPaletteColor(BYTE idx, COLORREF cr);
	void	SwapIndex(BYTE idx1, BYTE idx2);
	void	SetStdPalette();
//@}

/** \addtogroup Pixel */ //@{
	bool	IsInside(long x, long y);
	bool	IsTransparent(long x,long y);
	RGBQUAD GetPixelColor(long x,long y, bool bGetAlpha = true);
	BYTE	GetPixelIndex(long x,long y);
	BYTE	GetPixelGray(long x, long y);
	void	SetPixelColor(long x,long y,RGBQUAD c, bool bSetAlpha = false);
	void	SetPixelColor(long x,long y,COLORREF cr);
	void	SetPixelIndex(long x,long y,BYTE i);
	void	DrawLine(int StartX, int EndX, int StartY, int EndY, RGBQUAD color, bool bSetAlpha=false);
	void	DrawLine(int StartX, int EndX, int StartY, int EndY, COLORREF cr);
	void	BlendPixelColor(long x,long y,RGBQUAD c, float blend, bool bSetAlpha = false);
//@}

protected:
/** \addtogroup Protected */ //@{
	BYTE BlindGetPixelIndex(const long x,const long y);
	RGBQUAD BlindGetPixelColor(const long x,const long y);
	void *BlindGetPixelPointer(const long x,const  long y);
//@}

public:

#if CXIMAGE_SUPPORT_INTERPOLATION
/** \addtogroup Interpolation */ //@{
	//overflow methods:
	enum OverflowMethod {
		OM_COLOR=1,
		OM_BACKGROUND=2,
		OM_TRANSPARENT=3,
		OM_WRAP=4,
		OM_REPEAT=5,
		OM_MIRROR=6
	};
	void OverflowCoordinates(float &x, float &y, OverflowMethod const ofMethod);
	void OverflowCoordinates(long  &x, long &y, OverflowMethod const ofMethod);
	RGBQUAD GetPixelColorWithOverflow(long x, long y, OverflowMethod const ofMethod=OM_BACKGROUND, RGBQUAD* const rplColor=0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产一区二区三区精品| 青草av.久久免费一区| 不卡的电影网站| 日韩美女视频19| 在线视频你懂得一区| 亚洲成a人在线观看| 91麻豆精品国产91久久久久久久久 | 久久影视一区二区| 国产成人aaaa| 亚洲精品视频一区| 制服丝袜av成人在线看| 精品一区二区三区欧美| 中文字幕av免费专区久久| 一本久道中文字幕精品亚洲嫩| 自拍偷拍亚洲欧美日韩| 欧美日本在线看| 国产毛片精品视频| 亚洲人精品午夜| 欧美一区欧美二区| 国产成人精品亚洲日本在线桃色 | 国产亚洲视频系列| 91啪亚洲精品| 美腿丝袜在线亚洲一区| 国产精品三级视频| 69堂精品视频| eeuss影院一区二区三区| 水野朝阳av一区二区三区| 国产日本亚洲高清| 欧美日韩精品欧美日韩精品 | 日韩视频免费观看高清完整版在线观看 | 精品一区二区三区在线播放| 中文一区在线播放| 欧美日韩情趣电影| va亚洲va日韩不卡在线观看| 日韩高清在线电影| 亚洲视频一二三| 欧美第一区第二区| 在线视频中文字幕一区二区| 国产伦精品一区二区三区免费| 一二三四区精品视频| 久久只精品国产| 欧美日韩激情一区二区三区| 不卡的av电影| 精品伊人久久久久7777人| 亚洲国产精品天堂| 国产精品毛片久久久久久| 日韩一区二区影院| 欧美色精品天天在线观看视频| 国产成a人亚洲| 久久激情五月婷婷| 天天色 色综合| 玉足女爽爽91| 亚洲色图视频免费播放| 国产午夜精品一区二区| 日韩欧美一区二区在线视频| 欧美私模裸体表演在线观看| 成人爱爱电影网址| 国产精品中文字幕日韩精品| 男人的天堂久久精品| 亚洲在线观看免费| 亚洲欧美偷拍另类a∨色屁股| 2020日本不卡一区二区视频| 欧美欧美午夜aⅴ在线观看| 91免费版在线看| 91在线视频18| 成人午夜伦理影院| 国产69精品久久777的优势| 狠狠色丁香久久婷婷综| 精品一区二区三区蜜桃| 另类人妖一区二区av| 日韩av高清在线观看| 日韩精品久久久久久| 五月激情综合网| 午夜日韩在线电影| 琪琪一区二区三区| 久久激情五月激情| 国产精品一区一区| 国产盗摄女厕一区二区三区 | 青青草原综合久久大伊人精品优势 | 欧美日韩夫妻久久| 欧美日韩国产一二三| 欧美日韩不卡在线| 日韩一区二区麻豆国产| 日韩免费观看高清完整版 | 欧美一级片在线观看| 欧美一区日本一区韩国一区| 日韩一区二区在线观看视频播放| 这里只有精品免费| 欧美电影免费观看高清完整版在线| 日韩亚洲欧美一区二区三区| 精品久久国产97色综合| 久久久九九九九| 国产精品伦一区| 一区二区三区在线视频免费| 日韩激情av在线| 国内精品国产成人国产三级粉色| 国产精品123区| 91在线精品一区二区三区| 色欧美片视频在线观看 | 国产精品99久久不卡二区| 国产成人丝袜美腿| 色综合久久综合中文综合网| 欧美日韩mp4| 亚洲精品在线观看视频| 国产片一区二区| 亚洲一区二区成人在线观看| 紧缚捆绑精品一区二区| 99精品偷自拍| 91精品视频网| 国产精品久久久久天堂| 亚洲国产精品久久久久婷婷884| 日韩在线一区二区| 国产在线精品一区二区三区不卡 | 久久久久久久久97黄色工厂| 亚洲欧洲日韩在线| 另类综合日韩欧美亚洲| 99riav一区二区三区| 日韩欧美国产午夜精品| 国产精品国产馆在线真实露脸| 日韩制服丝袜av| av资源网一区| 日韩精品一区二区三区视频播放 | 国产女主播一区| 日日夜夜一区二区| 99精品视频一区二区三区| 日韩一区二区电影在线| 亚洲另类在线制服丝袜| 国产一区二区美女| 6080亚洲精品一区二区| √…a在线天堂一区| 精品一区二区三区免费播放| 欧美在线影院一区二区| 国产女同性恋一区二区| 久久精品国产免费看久久精品| 91久久久免费一区二区| 欧美激情一区二区三区在线| 日韩精品福利网| 欧美视频在线不卡| 中文字幕日韩欧美一区二区三区| 精品在线播放免费| 欧美丰满美乳xxx高潮www| 亚洲免费观看高清完整版在线观看熊| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩中文精品| 亚洲少妇30p| 成人a免费在线看| 国产欧美日韩精品一区| 国产一区二区网址| 欧美大片一区二区| 免费在线观看视频一区| 欧美蜜桃一区二区三区| 一区二区三区在线视频播放| 97国产一区二区| 亚洲欧美日韩精品久久久久| 成人精品免费视频| 国产精品午夜电影| 国产成人综合自拍| 国产日韩欧美高清在线| 国产成人h网站| 国产日韩欧美不卡在线| 国产高清无密码一区二区三区| 久久青草国产手机看片福利盒子 | 成人aaaa免费全部观看| 久久女同精品一区二区| 黄网站免费久久| 久久蜜桃香蕉精品一区二区三区| 毛片一区二区三区| 精品国产乱码久久久久久久| 久久99久久99小草精品免视看| 精品日韩在线一区| 国产一区二区三区| 国产精品久久夜| 欧美在线观看一二区| 日韩综合小视频| 精品国产99国产精品| 国产成人高清视频| 日韩va欧美va亚洲va久久| 91精品欧美综合在线观看最新| 蜜桃av一区二区在线观看| 久久蜜桃一区二区| 91亚洲精品乱码久久久久久蜜桃| 日韩理论片在线| 欧美日韩一区二区三区在线看| 日韩av在线播放中文字幕| 精品国产亚洲在线| www.欧美亚洲| 亚洲夂夂婷婷色拍ww47| 欧美大胆人体bbbb| 成人av电影在线播放| 亚洲国产aⅴ成人精品无吗| 日韩一区二区三区视频在线| 国产一区二区女| 一区二区三区国产精品| 717成人午夜免费福利电影| 国产精品中文有码| 亚洲主播在线播放| 精品福利二区三区| 国产91精品精华液一区二区三区| 亚洲激情六月丁香| 日韩欧美一二三|