⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ximainfo.cpp

📁 It s a tool designed to extract as much information as possible from Bluetooth devices without the r
💻 CPP
字号:
// ximainfo.cpp : main attributes/* 03/10/2004 v1.00 - Davide Pizzolato - www.xdp.it * CxImage version 5.99c 17/Oct/2004 */#include "ximage.h"/////////////////////////////////////////////////////////////////////////////////** * \return the color used for transparency, and/or for background color */RGBQUAD	CxImage::GetTransColor(){	if (head.biBitCount<24 && info.nBkgndIndex != -1) return GetPaletteColor((BYTE)info.nBkgndIndex);	return info.nBkgndColor;}/////////////////////////////////////////////////////////////////////////////////** * Gets the index used for transparency. Returns -1 for no transparancy. */long CxImage::GetTransIndex() const{	return info.nBkgndIndex;}/////////////////////////////////////////////////////////////////////////////////** * Sets the index used for transparency with 1, 4 and 8 bpp images. Set to -1 to remove the effect. */void CxImage::SetTransIndex(long idx){	info.nBkgndIndex = idx;}/////////////////////////////////////////////////////////////////////////////////** * Sets the color used for transparency with 24 bpp images. * You must call SetTransIndex(0) to enable the effect, SetTransIndex(-1) to disable it. */void CxImage::SetTransColor(RGBQUAD rgb){	rgb.rgbReserved=0;	info.nBkgndColor = rgb;}////////////////////////////////////////////////////////////////////////////////bool CxImage::IsTransparent() const{	return info.nBkgndIndex>=0; // <vho>}/////////////////////////////////////////////////////////////////////////////////** * Returns true if the image has 256 colors or less. */bool CxImage::IsIndexed() const{	return head.biClrUsed!=0;}/////////////////////////////////////////////////////////////////////////////////** * Sets the method for drawing the frame related to others */void CxImage::SetDisposalMethod(int dm){	info.m_dispmeth=dm; }/////////////////////////////////////////////////////////////////////////////////** * Gets the method for drawing the frame related to others * Values :    0 -   No disposal specified. The decoder is *                   not required to take any action. *             1 -   Do not dispose. The graphic is to be left *                   in place. *             2 -   Restore to background color. The area used by the *                   graphic must be restored to the background color. *             3 -   Restore to previous. The decoder is required to *                   restore the area overwritten by the graphic with *                   what was there prior to rendering the graphic. *             4-7 -    To be defined. */long CxImage::GetDisposalMethod(){	return info.m_dispmeth; }/////////////////////////////////////////////////////////////////////////////////** * \return 1 = indexed, 2 = RGB, 4 = RGBA */BYTE CxImage::GetColorType(){	BYTE b = (BYTE)((head.biBitCount>8) ? 2 /*COLORTYPE_COLOR*/ : 1 /*COLORTYPE_PALETTE*/);#if CXIMAGE_SUPPORT_ALPHA	if (AlphaIsValid()) b = 4 /*COLORTYPE_ALPHA*/;#endif //CXIMAGE_SUPPORT_ALPHA	return b;}/////////////////////////////////////////////////////////////////////////////////** * \return Resolution for TIFF, JPEG, PNG and BMP formats. */long CxImage::GetXDPI() const{	return info.xDPI;}/////////////////////////////////////////////////////////////////////////////////** * \return Resolution for TIFF, JPEG, PNG and BMP formats. */long CxImage::GetYDPI() const{	return info.yDPI;}/////////////////////////////////////////////////////////////////////////////////** * Set resolution for TIFF, JPEG, PNG and BMP formats. */void CxImage::SetXDPI(long dpi){	if (dpi<=0) dpi=96;	info.xDPI = dpi;	head.biXPelsPerMeter = (long) floor(dpi * 10000.0 / 254.0 + 0.5);}/////////////////////////////////////////////////////////////////////////////////** * Set resolution for TIFF, JPEG, PNG and BMP formats. */void CxImage::SetYDPI(long dpi){	if (dpi<=0) dpi=96;	info.yDPI = dpi;	head.biYPelsPerMeter = (long) floor(dpi * 10000.0 / 254.0 + 0.5);}/////////////////////////////////////////////////////////////////////////////////** * \sa SetFlags */DWORD CxImage::GetFlags() const{	return info.dwFlags;}/////////////////////////////////////////////////////////////////////////////////** * Image flags, for future use * \param flags *  - 0x??00000 = reserved for 16 bit, CMYK, multilayer *  - 0x00??0000 = blend modes *  - 0x0000???? = layer id or user flags * * \param bLockReservedFlags protects the "reserved" and "blend modes" flags  */void CxImage::SetFlags(DWORD flags, bool bLockReservedFlags){	if (bLockReservedFlags) info.dwFlags = flags & 0x0000ffff;	else info.dwFlags = flags;}/////////////////////////////////////////////////////////////////////////////////** * \sa SetCodecOption */DWORD CxImage::GetCodecOption(DWORD imagetype){	if (imagetype<CMAX_IMAGE_FORMATS){		if (imagetype==0){			imagetype = GetType();		}		return info.dwCodecOpt[imagetype];	}	return 0;}/////////////////////////////////////////////////////////////////////////////////** * Encode option for GIF, TIF and JPG. * - GIF : 0 = LZW (default), 1 = none, 2 = RLE. * - TIF : 0 = automatic (default), or a valid compression code as defined in "tiff.h" (COMPRESSION_NONE = 1, COMPRESSION_CCITTRLE = 2, ...) * - JPG : valid values stored in enum CODEC_OPTION ( ENCODE_BASELINE = 0x01, ENCODE_PROGRESSIVE = 0x10, ...) * * \return true if everything is ok */bool CxImage::SetCodecOption(DWORD opt, DWORD imagetype){	if (imagetype<CMAX_IMAGE_FORMATS){		if (imagetype==0){			imagetype = GetType();		}		info.dwCodecOpt[imagetype] = opt;		return true;	}	return false;}/////////////////////////////////////////////////////////////////////////////////** * \return internal hDib object.. */void* CxImage::GetDIB() const{	return pDib;}////////////////////////////////////////////////////////////////////////////////DWORD CxImage::GetHeight() const{	return head.biHeight;}////////////////////////////////////////////////////////////////////////////////DWORD CxImage::GetWidth() const{	return head.biWidth;}/////////////////////////////////////////////////////////////////////////////////** * \return DWORD aligned width of the image. */DWORD CxImage::GetEffWidth() const{	return info.dwEffWidth;}/////////////////////////////////////////////////////////////////////////////////** * \return 2, 16, 256; 0 for RGB images. */DWORD CxImage::GetNumColors() const{	return head.biClrUsed;}/////////////////////////////////////////////////////////////////////////////////** * \return: 1, 4, 8, 24. */WORD CxImage::GetBpp() const{	return head.biBitCount;}/////////////////////////////////////////////////////////////////////////////////** * \return original image format * \sa ENUM_CXIMAGE_FORMATS. */DWORD CxImage::GetType() const{	return info.dwType;}/////////////////////////////////////////////////////////////////////////////////** * \return current frame delay in milliseconds. Only for GIF and MNG formats. */DWORD CxImage::GetFrameDelay() const{	return info.dwFrameDelay;}/////////////////////////////////////////////////////////////////////////////////** * Sets current frame delay. Only for GIF format. * \param d = delay in milliseconds */void CxImage::SetFrameDelay(DWORD d){	info.dwFrameDelay=d;}////////////////////////////////////////////////////////////////////////////////void CxImage::GetOffset(long *x,long *y){	*x=info.xOffset;	*y=info.yOffset;}////////////////////////////////////////////////////////////////////////////////void CxImage::SetOffset(long x,long y){	info.xOffset=x;	info.yOffset=y;}/////////////////////////////////////////////////////////////////////////////////** * \sa SetJpegQuality */BYTE CxImage::GetJpegQuality() const{	return info.nQuality;}/////////////////////////////////////////////////////////////////////////////////** * quality level for JPEG and JPEG2000 * \param q: can be from 0 to 100 */void CxImage::SetJpegQuality(BYTE q){	info.nQuality = q;}/////////////////////////////////////////////////////////////////////////////////** * \sa SetJpegScale */BYTE CxImage::GetJpegScale() const{	return info.nJpegScale;}/////////////////////////////////////////////////////////////////////////////////** * scaling down during JPEG decoding valid numbers are 1, 2, 4, 8 * \author [ignacio] */void CxImage::SetJpegScale(BYTE q){	info.nJpegScale = q;}/////////////////////////////////////////////////////////////////////////////////** * Used to monitor the slow loops. * \return value is from 0 to 100. * \sa SetProgress */long CxImage::GetProgress() const{	return info.nProgress;}/////////////////////////////////////////////////////////////////////////////////** * \return the escape code. * \sa SetEscape */long CxImage::GetEscape() const{	return info.nEscape;}/////////////////////////////////////////////////////////////////////////////////** * Forces the value of the internal progress variable. * \param p should be from 0 to 100. * \sa GetProgress */void CxImage::SetProgress(long p){	info.nProgress = p;}/////////////////////////////////////////////////////////////////////////////////** * Used to quit the slow loops or the codecs. * - SetEscape(-1) before Decode forces the function to exit, right after   *   the image width and height are available ( for bmp, jpg, gif, tif ) */void CxImage::SetEscape(long i){	info.nEscape = i;}/////////////////////////////////////////////////////////////////////////////////** * Checks if the image is correctly initializated. */bool CxImage::IsValid() const{	return pDib!=0;}/////////////////////////////////////////////////////////////////////////////////** * True if the image is enabled for painting. */bool CxImage::IsEnabled() const{	return info.bEnabled;}/////////////////////////////////////////////////////////////////////////////////** * Enables/disables the image. */void CxImage::Enable(bool enable){	info.bEnabled=enable;}/////////////////////////////////////////////////////////////////////////////////** * This function must be used after a Decode() / Load() call. * Use the sequence SetFrame(-1); Load(...); GetNumFrames(); * to get the number of images without loading the first image. * \return the number of images in the file. */long CxImage::GetNumFrames() const{	return info.nNumFrames;}/////////////////////////////////////////////////////////////////////////////////** * \return the current selected image (zero-based index). */long CxImage::GetFrame() const{	return info.nFrame;}/////////////////////////////////////////////////////////////////////////////////** * Sets the image number that the next Decode() / Load() call will load */void CxImage::SetFrame(long nFrame){	info.nFrame=nFrame;}CxImage * CxImage::GetFrameNo(long nFrame) const {	if (info.GifFrames && nFrame <= info.nNumFrames && info.GifFrames[nFrame]) {		return info.GifFrames[nFrame];	}	return (CxImage * const)this;}void CxImage::RetreiveAllFrame() {	info.bGetAllFrames = true;}void CxImage::RetreiveSingleFrame() {	info.bGetAllFrames = false;}/////////////////////////////////////////////////////////////////////////////////** * Returns the last reported error. */const char* CxImage::GetLastError(){	return info.szLastError;}/////////////////////////////////////////////////////////////////////////////////** * \return A.BBCCCDDDD *  - A = main version *  - BB = main revision *  - CCC = minor revision (letter) *  - DDDD = experimental revision */const float CxImage::GetVersionNumber(){	return 5.99003f;}////////////////////////////////////////////////////////////////////////////////const TCHAR* CxImage::GetVersion(){	static const TCHAR CxImageVersion[] = _T("CxImage 5.99c");	return (CxImageVersion);}////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -