|
楼主 |
发表于 2009-3-6 16:03:20
|
显示全部楼层
今天来给大家传GDI+库,你的VC6.0如果装了GDI+库,那么处理jpg、png等非bmp格式的图片将变的非常简单。目前我在网上看到有两个例子,一个是载入一张jpg图片做程序的背景,另一个是用GDI+特有的方式处理一行文字“Hello World”——在传统的RGB三色之外,增加了一个透明度参数,使得文字有若隐若显的效果,只用一个函数就可实现:SolidBrush brush(Color(60,0,0,255));//创建一个笔刷 第一项是透明度 后三项是RGB值。
接下来我要做的是,将这两个例子程序合成为一个程序,其实也就是把两部分代码整合到一起,做一个自己的小程序:使得文字漂浮在一个AV的脸上。
(原文件名:GDI+的应用.JPG)
GDI+库有30个头文件.h(把它们拷贝到你的VC6.0安装目录的“inlude”文件夹里),一个GdiPlus.lib文件(拷贝到你的VC6.0安装目录的“lib”文件夹里),一个gdiplus.dll(如果你的操作系统不是太老的话,这个就没必要了,但有备无患,还是放上来)。
GDI+库下载:
点击此处下载 ourdev_424073.zip(文件大小:928K) (原文件名:GDIPlus.zip)
用法:
在你的VC6.0编译环境中把GDI+库连接进来:工程—>设置—>连接—>对象/库的栏里面写上gdiplus.lib。
然后将以下代码放到你的VC工程目录下StdAfx.h文件的合适的位置
//加入的头文件
#include <comdef.h> //初始化一下com口
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long* //以后可以用ULONG_PTR 来替换unsigned long*了
#include "GdiPlus.h"
using namespace Gdiplus;
#endif
//结束
然后定义两个变量(在你程序中的合适位置)
//gdi+用到的两个变量
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
接着在你程序中的合适位置
//装载gdi+
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
用完GDI对象之后,记得释放对象,比如在你程序退出的地方:
//卸载gdi+
GdiplusShutdown(m_pGdiToken);
接下来在你程序中负责“显示”的函数中(这些是在SDK中写的,要在MFC下能用,稍微修改一下就行了)
Graphics graphics(hdc);
Graphics mygraphics(hdc); //创建一个Graphics对象
SolidBrush brush(Color(60,0,0,255)); //创建一个笔刷 第一项是透明度 后三项是RGB值
FontFamily fontFamily(L"Latha"); //选择一种字体
Font font(&fontFamily,0.5,FontStyleRegular,UnitInch); //文字大小可以在“0.5”处修改(英寸单位)
PointF pointF(50,240); //文字出现的X、Y坐标位置
Image image(L"001.jpg"); //载入JPG图片
graphics.DrawImage(&image,0,0); //图片出现的位置(X、Y坐标值)
mygraphics.DrawString(L"Hello Word!",-1,&font,pointF,&brush); //把文字“画”出来
这个例子的源代码我也放上来:
点击此处下载 ourdev_424077.rar(文件大小:2.15M) (原文件名:VC用GDI+的一个工程.rar) |
|