注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

杨伟的博客

程序人生

 
 
 

日志

 
 

VC绘图库(graphics.h)中 getimage / putimage / IMAGE(imagesize) 的用法  

2009-07-17 11:11:00|  分类: IT界 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文仅针对 VC 绘图库(graphics.h):http://yangw80.blog.163.com/blog/static/247518002200912210220994/

实在是因为我比较懒,写的 VC 绘图库的帮助一直不够详细,许多函数缺少相应实例。这篇文章介绍一下 getimage / putimage 的用法(与传统 BGI 出入很大),传统的 BGI 绘图有 imagesize 操作,初学者易造成内存泄漏等问题,在这个库中都有改进。这里简单介绍一下。

基本的函数原型如下:

void getimage(
    IMAGE *pDstImg,   // 保存图像的 IMAGE 对象指针
    int srcX,              // 要获取图像的区域左上角 x 坐标
    int srcY,           // 要获取图像的区域左上角 y 坐标
    int srcWidth,     // 要获取图像的区域宽度
    int srcHeight     // 要获取图像的区域高度
);

// 绘制图像到屏幕
void putimage(
    int dstX,                      // 绘制位置的 x 坐标
    int dstY,                      // 绘制位置的 y 坐标
    IMAGE *pSrcImg,        // 要绘制的 IMAGE 对象指针
    DWORD dwRop = SRCCOPY // 三元光栅操作码
);

另外还有很多重载,例如,直接加载 jpg 图片等,详见帮助吧,这里就不多写了。简单举个例子:

#include <graphics.h>
#include <conio.h>

void main()
{
    // 初始化图形环境
    initgraph(640,480);

    // 画一个图形
    circle(50,50,10);
   line(50,30,50,70);
   line(30,50,70,50);

    // 定义 IMAGE 对象
   IMAGE img;

   // 将指定图形保存到 IMAGE 对象中
   getimage(&img, 30, 30, 41, 41);

   // 在指定的两个位置绘制 IMAGE 对象
   putimage(200, 300, &img);
    putimage(300, 300, &img);

   // 按任意键关闭图形环境
   getch();
   closegraph();
}

getimage() 加载图片的局部代码如下:

getimage(&img, "c:\\test\\test.bmp");

除此之外,getimage 可以从另一个 IMAGE 对象中获取图像,putimage 可以将图像输出到另一个 IMAGE 对象中,大家使用中摸索吧。要是还不清楚,就给我发信,我再补充。

  评论这张
 
阅读(5)| 评论(6)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017