工控编程吧
标题:
150上位机VC MFC使用GDI+贴图剪切镜像效果
[打印本页]
作者:
qq263946146
时间:
2016-1-7 19:48
标题:
150上位机VC MFC使用GDI+贴图剪切镜像效果
(, 下载次数: 0)
上传
点击文件名下载附件
150上位机VC MFC使用GDI+贴图剪切镜像效果
功能展示
GDI+ 是微软对窗口DGI的升级,对图片的操作十分方便,我们当前例程通过GDI+,实现在三维矩形上贴图,图片镜像,图片剪切等效果;
要点提示
通过微软的GDI+能够快速轻松实现 对图片各种操作;
GDI+使用前,得下载微软的GDIPLUS支持包,可从微软的管网下载,我们这里给大家进行了打包;
然后是添加头文件再进行简单的初始化操作,在CWinApp派生类的InitInstance函数中进行此项工作是最好的;
实现功能
1.新建基于对话框的应用程序
2.使用前准备GDI+:将例程根目录Include文件夹复制到自己工程根目录。
在StdAfx.h头文件包含GDI+ 头文件及库文件//使用GDI+第一步
#define UNICODE
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#include "Include/gdiplus.h"
using namespace Gdiplus;
#pragma comment(lib, "Include/gdiplus.lib")
在APP类的InitInstance()中进行初始化
//使用GDI+第二步
GdiplusStartupInputgdiplusStartupInput; ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken,&gdiplusStartupInput, NULL);
在程序退出时 进行GDI+ 环境的关闭
//使用GDI+第三步 GdiplusShutdown(gdiplusToken); //关闭gdiplus的环境
3,准备好GDI+后,便是使用GDI+ 实现我们想要的功能:
准备三幅位图,放在res文件夹内,拖拽一位图控件,修改ID为IDC_RECT,拖拽一控件,关联函数,实现贴图效果
void CGkbc8Dlg::OnButton1()
{
int WIDTH=200;
int LEFT=100;
int TOP=150;
Graphics graphics(GetDC()->m_hDC);
graphics.Clear(Color::Blue);//使用蓝色做背景色清屏
//设置插值模式:高质量双三次插值法
graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
//分别装入张贴在立方体三面的图片
Bitmap face(L"res/1.bmp");
Bitmap top(L"res/2.bmp");
Bitmap right(L"res/3.bmp");
//重新定义用于张贴在正面的图片坐标
Point destinationFace[] =
{
Point(LEFT,TOP),
Point(LEFT+WIDTH, TOP),
Point(LEFT, TOP+WIDTH)
};
//张贴正面图像
graphics.DrawImage(&face,destinationFace,3);
//重新定义用于张贴在顶部的图片坐标
PointF destinationTop[]=
{
PointF(LEFT+WIDTH/2, TOP-WIDTH/2),
PointF(LEFT+WIDTH/2+WIDTH, TOP-WIDTH/2),
PointF(LEFT, TOP)
};
复制代码
//张贴顶部面图像
graphics.DrawImage(&top, destinationTop, 3);
//重新定义用于张贴在右侧的图片坐标
Point destinationRight[]=
{
Point(LEFT+WIDTH, TOP),
Point(LEFT+WIDTH/2+WIDTH, TOP-WIDTH/2),
Point(LEFT+WIDTH,TOP+WIDTH)
};
//张贴右侧面图像
graphics.DrawImage(&right, destinationRight, 3);
}
复制代码
其他功能代码过多,可下载例程进行学习
我们来演示实现的整个过程
[iqiyi]http://player.video.qiyi.com/3c850042a195d5d0018b6a5de368d3f9/0/0/w_19rtdmief5.swf-albumId=5149340909-tvId=5149340909-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4