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

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

?? ximage.h

?? 信息隱藏里 large payload 源碼
?? 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


extern "C" {
// #include   "../jpeg/jpeglib.h"	//為了使用jvirt_barray_ptr結構
}


/* 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
};
typedef unsigned char boolean;

struct My_jvirt_sarray_control {
  short ** mem_buffer;	/* => the in-memory buffer */
  unsigned int rows_in_array;	/* total virtual array height */
  unsigned int samplesperrow;	/* width of array (and of memory buffer) */
  unsigned int maxaccess;		/* max rows accessed by access_virt_sarray */
  unsigned int rows_in_mem;	/* height of memory buffer */
  unsigned int rowsperchunk;	/* allocation chunk size in mem_buffer */
  unsigned int cur_start_row;	/* first logical row # in the buffer */
  unsigned int first_undef_row;	/* row # of first uninitialized row */
  boolean pre_zero;		/* pre-zero mode requested? */
  boolean dirty;		/* do current buffer contents need written? */
  boolean b_s_open;		/* is backing-store data valid? */
  struct jvirt_sarray_control* next;	/* link to next virtual sarray control block */
  char b_s_info[80];				//根據實際計算,得出backing_store_info的大小是80字節
  //backing_store_info b_s_info;	/* System-dependent control info */
};

typedef struct My_jvirt_sarray_control*  My_jvirt_barray_ptr;


/////////////////////////////////////////////////////////////////////////////
// CxImage class
/////////////////////////////////////////////////////////////////////////////
class DLL_EXP CxImage
{

//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


	//add by stoneclever 2005-04-26
	//為了可以直接讀取DCT系數及量化矩陣

	UINT stone_q1[64];			//保存讀文件時使用的量化系數,灰度圖使用q1
	UINT stone_q2[64];			//彩色圖使用1~3
	UINT stone_q3[64];	
	
	TCHAR filename[FILENAME_MAX+8];	//保存該圖像對應的文件名,這里加8是因為由于
									//CxImage庫中好像要求CXIMAGEINFO達到一定的規格,
									//否則就會引起整個庫出現一些問題

	My_jvirt_barray_ptr * coef_arrays;	//保存DCT系數的指針

	CxImage * pImaJpg;				//保存中間臨時變量,在直接讀取JPG圖像時有用(為了釋放的方便)

} 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);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区高清aⅴ | 成人动漫在线一区| 美女高潮久久久| 同产精品九九九| 亚洲一本大道在线| 天天av天天翘天天综合网色鬼国产| 亚洲精品欧美二区三区中文字幕| 亚洲va天堂va国产va久| 国产成人久久精品77777最新版本| 欧美电影免费提供在线观看| 色综合久久久久久久久| 色哟哟日韩精品| 欧美视频你懂的| 欧美精品黑人性xxxx| 精品久久一区二区三区| 中文一区一区三区高中清不卡| 国产精品视频看| 亚洲主播在线播放| 五月激情六月综合| 精品一区二区三区免费观看| 国产91精品一区二区麻豆亚洲| 成人午夜精品一区二区三区| 色婷婷久久99综合精品jk白丝| 欧美熟乱第一页| 日韩女优电影在线观看| 久久久噜噜噜久噜久久综合| 亚洲视频一区二区免费在线观看| 亚洲成av人片在线观看无码| 精品一区二区久久| 99精品国产91久久久久久| 8v天堂国产在线一区二区| 久久这里只精品最新地址| 一区二区三区中文在线观看| 免费在线看成人av| 色综合久久综合中文综合网| 欧美刺激午夜性久久久久久久| 国产精品灌醉下药二区| 美国十次了思思久久精品导航| 成人伦理片在线| 日韩网站在线看片你懂的| 国产精品毛片a∨一区二区三区| 亚洲第一福利一区| 国产精品系列在线观看| 成人app软件下载大全免费| 91精品国产综合久久国产大片| 亚洲国产精品99久久久久久久久| 亚洲超碰97人人做人人爱| 懂色av中文一区二区三区| 欧美日韩一区久久| 国产精品久久毛片a| 美女任你摸久久| 欧美午夜理伦三级在线观看| 国产情人综合久久777777| 日本午夜精品视频在线观看| 91久久精品日日躁夜夜躁欧美| 久久久精品综合| 毛片av中文字幕一区二区| 91香蕉视频在线| 国产女人aaa级久久久级| 午夜精品久久久久| 一本色道久久加勒比精品 | 日韩综合在线视频| 色综合久久久久| 国产精品视频你懂的| 国产精品综合视频| 精品对白一区国产伦| 秋霞午夜鲁丝一区二区老狼| 欧美日韩一区二区在线观看| 亚洲你懂的在线视频| 99久久精品国产麻豆演员表| 中文成人综合网| 精品亚洲成a人| 日韩欧美二区三区| 久久精品国产99久久6| 欧美一区在线视频| 午夜视频在线观看一区| 欧美午夜精品一区二区蜜桃| 亚洲午夜精品在线| 欧美亚洲国产一卡| 亚洲国产一区二区视频| 欧美日韩一区二区电影| 日本午夜精品视频在线观看| 日韩一区二区三区在线观看| 秋霞午夜鲁丝一区二区老狼| 精品久久久久久久一区二区蜜臀| 久久成人免费网| 精品国产一区二区三区久久久蜜月| 毛片av一区二区| 国产视频一区二区三区在线观看| 国产91精品一区二区麻豆网站| 国产精品对白交换视频| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲综合精品自拍| 884aa四虎影成人精品一区| 蜜臀精品一区二区三区在线观看| 精品国产凹凸成av人导航| 国产超碰在线一区| 亚洲一区二区三区不卡国产欧美| 6080日韩午夜伦伦午夜伦| 老司机午夜精品99久久| 国产欧美一二三区| 欧美视频一区二区三区四区| 麻豆成人久久精品二区三区红| ww亚洲ww在线观看国产| 99精品国产热久久91蜜凸| 亚洲777理论| 亚洲国产精品99久久久久久久久| 91丨porny丨首页| 蜜臀久久99精品久久久久久9| 国产精品每日更新| 欧美一区二区三区影视| 成人免费观看视频| 日本欧美一区二区三区| 中文字幕不卡在线观看| 欧美男同性恋视频网站| 国产黄色91视频| 亚洲丰满少妇videoshd| 欧美韩日一区二区三区四区| 欧美日韩你懂的| 成人av午夜电影| 麻豆视频一区二区| 亚洲一区二区五区| 国产亲近乱来精品视频| 91麻豆精品国产91久久久久久| 成人网男人的天堂| 精品亚洲国内自在自线福利| 亚洲成人av一区| 亚洲精品福利视频网站| 中文字幕的久久| 欧美精品一区二区三区蜜桃| 欧美久久久久久久久中文字幕| caoporen国产精品视频| 国产一区二区女| 喷白浆一区二区| 亚洲成人免费av| 亚洲人精品午夜| 中文字幕高清不卡| 国产天堂亚洲国产碰碰| 精品国产91亚洲一区二区三区婷婷| 欧美性色黄大片| av成人老司机| 成人高清在线视频| 国产精品资源网站| 久久99精品久久久久婷婷| 日精品一区二区| 日本亚洲免费观看| 亚洲国产精品影院| 亚洲国产毛片aaaaa无费看| 亚洲欧美日韩国产手机在线| 国产精品国产三级国产普通话99 | 国产传媒日韩欧美成人| 激情国产一区二区| 韩国成人在线视频| 韩国女主播成人在线| 国产主播一区二区| 国产福利精品导航| 99精品欧美一区二区蜜桃免费| 成人福利在线看| 91麻豆免费视频| 欧美性videosxxxxx| 欧美日韩国产欧美日美国产精品| 欧美三区免费完整视频在线观看| 欧美在线综合视频| 欧美精品v国产精品v日韩精品| 4hu四虎永久在线影院成人| 欧美一二三区在线观看| 亚洲精品在线免费播放| 国产欧美日韩在线| 樱花影视一区二区| 日韩av午夜在线观看| 久久99久久久久| 成人午夜碰碰视频| 欧美天堂一区二区三区| 日韩一本二本av| 欧美国产欧美亚州国产日韩mv天天看完整| 中国色在线观看另类| 一区二区免费在线| 精彩视频一区二区| aaa亚洲精品| 91精品在线麻豆| 国产欧美日韩综合精品一区二区| 自拍偷拍国产精品| 免费在线观看成人| 成人av在线观| 日韩一区二区在线播放| √…a在线天堂一区| 日韩成人av影视| 不卡av免费在线观看| 欧美一区二区久久| 国产精品久久久久四虎| 美女性感视频久久| 91影院在线观看| 日韩一级欧美一级| 亚洲精品国产无天堂网2021| 蜜桃av一区二区| 欧美亚洲综合色| 国产精品视频线看| 蜜臀精品一区二区三区在线观看 | 国产精品久久久久久久久久久免费看| 亚洲高清不卡在线|