|
本帖最后由 啄啄 于 2012-8-9 16:43 编辑
GDI+图像用于方便GDI+对图片进行操作
图像的创建方法有2种
1.通过文件名创建
2.通过字节流指针来创建
第二种创建方法,可以通过字节流操作修改成字节集创建,那么这里我们不做详解
下面我们来看看通过文件名创建的API
.DLL命令 GdipLoadImageFromFile, 整数型, "gdiplus", "GdipLoadImageFromFile", , 创建图像自文件名
.参数 filename, 字节集, , 文件名,Unicode
.参数 Image, 整数型, 传址, 欲存放图像指针的一个变量
注意:文件名为Unicode编码
我们通过文件名创建图像后,再通过图像创建我们上节课中的图形,就可以对图像进行绘画操作
当然,图像本身也可以执行一些操作,比如缩放大小,翻转等,,,相关的API等教程结束,抽个时间整理一下
下面我来说下上节课我没讲到的第3种创建图形的方法,就是通过图像指针创建
下面来看API
.DLL命令 GdipGetImageGraphicsContext, 整数型, "GdiPlus.dll", "GdipGetImageGraphicsContext", , 创建图形自图像指针
.参数 image, 整数型, , 图像指针
.参数 graphics, 整数型, 传址, 欲存放图形指针的变量
下面我们来结合上节课,写一个类似于电视中的“画中画”的程序
我们先来解剖一下
我们得先需要两张图片,一张作为大画,另一个是小画
然后还需要一个矩形将大画和小画隔开
OK,解剖过后我们的思路就清楚了
可能还有同学要发问,如何才能两个图像创建 一个图形
其实我们不必使用创建,我们可以把,图像画上去
因此,我们还需要两个API
.DLL命令 GdipDrawImageRectRect, 整数型, "gdiplus", "GdipDrawImageRectRect", , 在图形画缩放后的图像
.参数 graphics, 整数型, , 图形指针
.参数 Image, 整数型, , 欲缩放的图像指针
.参数 dstX, 小数型, , 目标左边
.参数 dstY, 小数型, , 目标顶边
.参数 dstWidth, 小数型, , 目标宽度
.参数 dstHeight, 小数型, , 目标高度
.参数 srcx, 小数型, , 原图左边
.参数 srcy, 小数型, , 原图顶边
.参数 srcwidth, 小数型, , 原图宽度
.参数 srcheight, 小数型, , 原图高度
.参数 srcUnit, 整数型, , 原图单位 0.世界坐标 1.显示器 2.像素 3.点 4.英寸 5.文档 6.毫米
.参数 imageAttributes, 整数型, , 0
.参数 callback, 整数型, , 0
.参数 callbackData, 整数型, , 0
.DLL命令 GdipDrawImage, 整数型, "gdiplus", "GdipDrawImage", , 画图像
.参数 graphics, 整数型, , 图形指针
.参数 Image, 整数型, , 图像指针
.参数 x, 小数型, , 显示左边
.参数 y, 小数型, , 显示顶边
源码“画中画”:
源码.rar
(15.56 KB, 下载次数: 808)
|
评分
-
参与人数 1 | 好评 +1 |
精币 +3 |
收起
理由
|
冰点
| + 1 |
+ 3 |
不错,图文版的完了之后,该来个视频版的吧. |
查看全部评分
|