| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1731 人关注过本帖
标题:请教!怎样在TC图形编程环境下截取运行结果图!
只看楼主 加入收藏
念月思灵
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-1-17
收藏
 问题点数:0 回复次数:6 
请教!怎样在TC图形编程环境下截取运行结果图!

用TC进行图形编程,运行时用printscreen无法截获图片,
用截图软件HyperSnap-DX 5也截取不到运行结果的图片,
为什么呢?请各位大虾指点。该用什么方法解决呢?

搜索更多相关主题的帖子: 图形 环境 结果 运行 
2006-01-18 11:28
念月思灵
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-1-17
收藏
得分:0 
运行调试的环境是:

操作系统:Microsoft Windows XP Professional Service Pack 2

编辑环境:EditPlus v2.21

编译环境:Turbo C 2.0


欢迎光临念月思灵的博客 http://xxpal..cn
2006-01-18 12:14
georgezf
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2004-11-20
收藏
得分:0 
我知道一个办法就是自己在程序内部写一个函数,将屏幕上的内容输入文件中,用BMP的格式来写。

2006-01-18 18:13
念月思灵
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-1-17
收藏
得分:0 
谢谢3楼的大虾,我在Windows 98下调试,可以用Printscreen截图了!

欢迎光临念月思灵的博客 http://xxpal..cn
2006-01-18 19:33
zushuboderen
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-12-24
收藏
得分:0 
郁闷啊......
完全看不懂.......

冷静点............. 耐心点.............
2006-01-19 14:39
YF1042
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-1-30
收藏
得分:0 


/*这里有两个可以保存和打开程序运行中部分屏幕或全屏图形的函数*/

用法:Save_dat(0,0,320,240, "123.dat");  /*保存图形*/
Load_dat(100,100,420,340, "123.dat"); /*打开图形*/

其中两个函数中图形的大小尺寸应保持一样

/***************保存图形于视频缓冲区函数*****其中x,y,m,n为要保存图形区域参数*************/
/*该图片最好保存为*.dat格式*/
Save_dat(int x, int y, int m, int n, char *fname)
{
FILE *fp;
char far *ptr=(char far *)0xA0000000l; /*VRAM指针*/
int j,save_f=1;
register i;
unsigned long a;
int k, numbytes;
char *p;
numbytes= (m-x)/8+1;
fp=fopen(fname,"wb"); /*打开二进制文件*/
if(fp==NULL)
{ printf("Open file error!!");
save_f=0; }
if(save_f!=0)
{
for(i=0;i<4;i++)
{ outportb(0x3ce,4); /*送索引号4,选读位面选择寄存器*/
outportb(0x3cf,i); /*选中的位面*/
for(j= y; j<= n; j++) /*38400为满屏图形字节数*/
{ a= addr(x, j);
for(k= 0; k<= numbytes; k++)
putc(ptr[a+k], fp);
}
}
}
fclose(fp);
outportb(0x3cf,0); /*恢复原来的设置*/
}

/****************显示保存在于视频缓冲区图形函数****其中x,y,m,n为要打开图形区域参数**************/
Load_dat(int x, int y, int m, int n, char *fname)
{
FILE *fp;
char far *ptr= (char far *)0xA0000000l; /*VRAM指针*/
int j,save_f=1;
register i;
unsigned long a;
int k, numbytes, r= 1;
char *p;
numbytes= (m-x)/8+1;
fp=fopen(fname,"rb"); /*打开二进制文件*/
if(fp==NULL)
{ printf("Open file error!!");
save_f=0; }
if(save_f!=0)
{
for(i=0;i<4;i++)
{ outportb(0x3c4,2); /*送索引号4,选读位面选择寄存器*/
outportb(0x3c5,r); /*选中的位面*/
for(j= y; j<= n; j++) /*38400为满屏图形字节数*/
{ a= addr(x, j);
for(k= 0; k<= numbytes; k++)
ptr[a+k]= getc(fp);
}
r= r*2;
}
}
fclose(fp);
outportb(0x3c5,0xf); /*恢复位面允许写寄存器原值*/
}

/*********地址转换函数**********/
addr(int x, int y)
{
unsigned long a;
a= 80l*(long)y+(long)x/8l;
return (a);
}

[此贴子已经被作者于2006-2-8 3:24:29编辑过]


2006-02-08 03:21
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
思路是不错的~~~惯例顶一下
不过下次在贴之前请麻烦先自己编译通过再贴~谢谢

淘宝杜琨
2006-02-08 10:00
快速回复:请教!怎样在TC图形编程环境下截取运行结果图!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved