当前位置: 首页>>代码示例>>C++>>正文


C++ CImage::Clone方法代码示例

本文整理汇总了C++中CImage::Clone方法的典型用法代码示例。如果您正苦于以下问题:C++ CImage::Clone方法的具体用法?C++ CImage::Clone怎么用?C++ CImage::Clone使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CImage的用法示例。


在下文中一共展示了CImage::Clone方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: InitInstance

//
//   函数: InitInstance(HINSTANCE, int)
//
//   目的: 保存实例句柄并创建主窗口
//
//   注释:
//
//        在此函数中,我们在全局变量中保存实例句柄并
//        创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
	HWND hWnd;

	hInst = hInstance; // 将实例句柄存储在全局变量中

	hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

	if (!hWnd)
	{
		return FALSE;
	}

	// 打开资源
	BYTE* buff = NULL; DWORD size = 0;
	HGLOBAL hres = CResGetter::GetBinary(IDB_BMP1, _T("BMP"), buff, size);
	// 打开文件并获取解码器
	CMemFile file(buff, size); CGC gc;
	ICoderObject* coder = CImgAnalyzer::GetCoder(&file, &gc);
	// 解码文件
	imgOrig = coder->Decode();
	imgShow = imgOrig.Clone();
	// 关闭资源
	CResGetter::ReleaseBinary(hres);

	// 允许拖放
	DragAcceptFiles(hWnd, TRUE);

	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);

	return TRUE;
}
开发者ID:Antelopeios,项目名称:win32-standard-expansion,代码行数:44,代码来源:TestImg1.cpp

示例2: OpenFile

BOOL OpenFile(HWND hWnd, CString& sPath)
{
	if (sPath.Empty()) return FALSE;
	// 打开文件并获取解码器
	CIOFile file(sPath); CGC gc;
	ICoderObject* coder = CImgAnalyzer::GetCoder(&file, &gc);
	if (!coder) return FALSE;
	// 解码文件
	imgOrig = coder->Decode();
	imgShow = imgOrig.Clone();
	return TRUE;
} 
开发者ID:Antelopeios,项目名称:win32-standard-expansion,代码行数:12,代码来源:TestImg1.cpp

示例3: WndProc

//
//  函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的: 处理主窗口的消息。
//
//  WM_COMMAND	- 处理应用程序菜单
//  WM_PAINT	- 绘制主窗口
//  WM_DESTROY	- 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message)
	{
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// 分析菜单选择:
		switch (wmId)
		{
		// 文件
		case IDM_OPEN:
			{
				CString ret;
				CSysDialog::FileDialog(ret, TRUE, NULL, NULL, 
					_T("图片文件(*.bmp;*.jpg;*.png;*.ico)\0*.bmp;*.jpg;*.png;*.ico\0所有文件(*.*)\0*.*\0"));
				OpenFile(hWnd, ret);
				// 刷新窗口
				Invalidate(hWnd);
			}
			break;
		case IDM_SAVE:
			if (imgShow)
			{
				CString ret; DWORD inx = 0;
				CSysDialog::FileDialog(ret, FALSE, NULL, NULL, 
					_T("BMP文件(*.bmp)\0*.bmp\0JPG文件(*.jpg)\0*.jpg\0PNG文件(*.png)\0*.png\0ICO文件(*.ico)\0*.ico\0"), &inx);
				SaveFile(inx, ret);
			}
			break;
		// 原图
		case IDM_ORI:
			if (imgOrig)
			{
				imgShow = imgOrig.Clone();
				// 刷新窗口
				Invalidate(hWnd);
			}
			break;
		// 形变
		case IDM_PLG:
			if (imgShow)
			{
				CPoint var[2] = 
				{
					CPoint(500, 200), 
					CPoint(600, 400)
				};
				image_t tmp = CImgDeformer::PlgDeform(imgShow, var);
				if(!tmp) break;
				imgShow = tmp;
				// 刷新窗口
				Invalidate(hWnd);
			}
			break;
		case IDM_WHL:
			if (imgShow)
			{
				image_t tmp = CImgDeformer::WhlDeform(imgShow, -45);
				if(!tmp) break;
				imgShow = tmp;
				// 刷新窗口
				Invalidate(hWnd);
			}
			break;
		case IDM_ZOM:
			if (imgShow)
			{
				CImage bmp_img(imgShow);
				image_t tmp = CImgDeformer::ZomDeform(imgShow, (LONG)(bmp_img.GetWidth() * -1.2), (LONG)(bmp_img.GetHeight() * 1.5));
				if(!tmp) break;
				imgShow = tmp;
				// 刷新窗口
				Invalidate(hWnd);
			}
			break;
		// 渲染
		case IDM_GRAY:
			Filter(hWnd, &CFilterGray());
			break;
		case IDM_INVE:
			Filter(hWnd, &CFilterInverse());
			break;
		case IDM_RELI:
			{
				timeBeginPeriod(1);
//.........这里部分代码省略.........
开发者ID:Antelopeios,项目名称:win32-standard-expansion,代码行数:101,代码来源:TestImg1.cpp


注:本文中的CImage::Clone方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。