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

📄 scanner.cpp

📁 又VC++实现的基于TWAIN的扫描仪图像输入处理软件
💻 CPP
字号:
//与具体扫描有关的类

#include "StdAfx.h"
#include "Scanner.h"
#include "functions.h"
#include "ViewWnd.h"
#include "Const.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern char InitDir2[100];
extern CViewWnd *pViewWnd;
/////////////////////////////////////////////////////////////////////////////
// CScanner构造体
///////////////////////////////////////////////////////////////////////
CScanner::CScanner(void)
{

	//初始化与扫描有关的数据
	m_pLastImage=NULL;		
	m_hPreImage=NULL;			
	m_hAdjustedPreImage=NULL;	

	//扫描区域
	m_rtScanZoom.top	= 0;
	m_rtScanZoom.left	= 0;
	m_rtScanZoom.bottom	= 0;
	m_rtScanZoom.right	= 0;
	m_nh=FALSE;

	//缺省增强色彩方式
	quesheng=TRUE;
    //AfxMessageBox(" 缺省");
}

/////////////////////////////////////////////////////////////////////////////
// CScanner析构体
///////////////////////////////////////////////////////////////////////
CScanner::~CScanner( )
{
   if(m_hPreImage!=NULL)
    GlobalFree(m_hPreImage);
   if(m_hAdjustedPreImage!=NULL)
	GlobalFree(m_hAdjustedPreImage);
}

/////////////////////////////////////////////////////////////////////////////
//设定扫描区域,由预选框确定扫描的范围,这些数据往往被其它函数调用
////////////////////////////////////////////////////////////////////////////
BOOL CScanner::SetSelectZoom(RECT rtZoom)
{
	int shuzu;
    shuzu=GetPrivateProfileInt("Shuzu","shuzu",1200,InitDir2); 
	
	m_rtScanZoom.top	= rtZoom.top;
	m_rtScanZoom.bottom	= rtZoom.bottom;
	m_rtScanZoom.right	= rtZoom.right;
	//保证从偶数点开始扫描
	m_rtScanZoom.left	=((long)(rtZoom.left*10/FuMian)&0xfffe)*FuMian/10;

	return TRUE;
}

///////////////////////////////////////////////////////////////////
//设置扫描分辨率
///////////////////////////////////////////////////////////////////
void CScanner::SetDPI(int nDPI)
{
	m_nDPI=nDPI;
    return ;
}

///////////////////////////////////////////////////////////////////
//设置扫描图象的颜色数,在这里为24位的真彩色图象
///////////////////////////////////////////////////////////////////
void CScanner::SetClororNum(int nColor)
{
	m_nColor=nColor;
	return;
}

///////////////////////////////////////////////////////////////////
//未用
///////////////////////////////////////////////////////////////////
void CScanner::ShowPreImage(HWND hwnd,LPVOID pPreImage)
{
   return;
}

///////////////////////////////////////////////////////////////////
//初始化扫描仪。
///////////////////////////////////////////////////////////////////
BOOL CScanner::	InitDevice() 
{
	return TRUE;
}

void CScanner::	SetScanner(LPVOID pParams)
{
	return;
}
void CScanner::	GetPreImage()
{
	return;
}
void CScanner::	GetLastImage()
{
	return;
}

////////////////////////////////////////////////////////////////////
//设置校正前的预览图像句柄
////////////////////////////////////////////////////////////////////
void CScanner::	SetHandleofPreviewBMP(HDIB hbmp)
{
	m_hPreImage=hbmp;
	return;
}

////////////////////////////////////////////////////////////////////
//设置校正后的预览图像句柄
////////////////////////////////////////////////////////////////////
void CScanner::SetHandleofAdjustedPreviewBMP(HDIB hbmp)
{
	m_hAdjustedPreImage = hbmp;
	return;
}

////////////////////////////////////////////////////////////////////
//获取校正前的预览图像句柄
////////////////////////////////////////////////////////////////////
HDIB CScanner::GetHandleofPreviewBMP(void)
{
	return m_hPreImage;
}

////////////////////////////////////////////////////////////////////
//获取校正后的预览图像句柄
////////////////////////////////////////////////////////////////////
HDIB CScanner::GetHandleofAdjustedPreviewBMP(void)
{
	return m_hAdjustedPreImage;
}

////////////////////////////////////////////////////////////////////
//获取图像选择框大小
////////////////////////////////////////////////////////////////////
RECT CScanner::GetSelectZoom(void)
{
	return m_rtScanZoom;
}


⌨️ 快捷键说明

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