C语言图像编程.docx
- 文档编号:2866767
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:32
- 大小:38.71KB
C语言图像编程.docx
《C语言图像编程.docx》由会员分享,可在线阅读,更多相关《C语言图像编程.docx(32页珍藏版)》请在冰豆网上搜索。
C语言图像编程
∙C语言图像编程(一、字符屏幕)
一、屏幕操作函数
1.clrscr()清除字符窗口函数
2.window()字符窗口函数
3.gotoxy()光标定位函数
4.clreol()清除光标行尾字符函数
5.insline()插入空行函数
6.delline()删除一行函数
7.gettext()拷进文字函数
8.puttext()拷出文字函数
9.movetext()移动文字函数
二、字符属性函数
10.textmode()文本模式函数
11.highvideo()高亮度函数
12.lowvideo()低亮度函数
13.normvideo(void);
14.textcolor()文本颜色函数
15.textattr()文本属性函数
16.textbackground()文本背景函数
三、屏显状态函数
17.wherex()光标处x坐标函数
18.wherey()光标处y坐标函数
19.gettextinfo()获取文本窗口信息函数
在BorlandC++里面提供了字符屏幕和图像函数。
字符屏幕的核心是窗口(Window),他是屏幕的活动部分,字符输出或显示在活动窗口中进行。
窗口在缺省时,就是整个屏幕。
窗口能根据需要指定其大小。
同样,对图像函数的操作,也提供了(Viewport)。
也就是说图像函数的操作都是在视口上进行。
图像视口和字符窗口具有相同的特性,用户能在屏幕上定义大小不同的视口,若不定义视口大小,他就是整个屏幕。
窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户能访问的最小单位为一个字符。
视口是在图像屏幕状态下的概念,文本和图像都能在视口上显示,用户可访问的最小单位是个像素(像素这一术语最初用来指显示器上最小的、独立的发光点单元。
然而目前,其含义拓宽为指图像显示器上的最小可访问点)。
字符和图像状态下,屏幕上的位置都是由他们的行和列所决定的。
有一点须指出:
字符状态左上角坐标为(1,1),但图像左上角坐标为(0,0)。
了解字符屏幕和图像函数和窗口和视口的关系是非常重要的。
例如,字符屏幕光标位置函数gotoxy()将光标移到窗口的x,y位置上,这未必是相对于整个屏幕。
下面介绍常用的几类字符屏幕函数的功能用途、操作方法及其例行程式。
一、屏幕操作函数
编写程式绘图经常要用到对字符屏幕进行操作。
例如,在往屏幕上写字符之前,首先要将屏幕清除干净。
又如,有时需要在屏幕上多处写上肉中刺样的字符内容,这时最佳用屏幕拷贝来高效率地完成这一任务。
对这些操作,BorlandC++提供了一系列字符屏幕操作函数来实现。
1.clrscr()清除字符窗口函数
功能:
函数clrscr()清除整个当前字符窗口,并且把光标定位于左上角(1,1)处。
用法:
此函数调用方式为voidclrscr(void);
说明:
括号中void表示无参数。
该函数相应的头文件为conio.h
返回值:
无
例:
使用这个函数的例子见4.clreol()函数的实例中。
2.window()字符窗口函数
功能:
函数window()用于在指定位置建立一个字符窗口。
用法:
此函数调用方式为voidwindow(intleft,inttop,intright,intbottom);
说明:
函数中参数left,top为窗口左上角坐标;right,bottom为其右下角坐标。
若有一个坐标是无效的,则window()函数不起作用。
一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是相对于整个屏幕。
不过建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标。
这样用户就能根据各种需要建立多个互不嵌套的窗口。
此函数的头文件为conio.h。
返回值:
无
例:
调用这个函数的实现例见3.gotoxy()函数的例子中。
3.gotoxy()光标定位函数
功能:
函数gotoxy()将字屏幕上的光标移到当前窗口指定的位置上。
用法:
这个函数调用方式为voidgotoxy(intx,inty);
说明:
括号里x,y是,光标定位的坐标,如果其中一个坐标值无效(如坐标超界),那么光标不会移动。
此函数在字符状态(有时称为文本状态)下经常用到,其相应的头文件为conio.h
返回值:
无
例:
下面程式建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确定的。
#include"conio.h>
voidborder(intstartx,intstarty,intendx,intendy)
{
registerinti;
gotoxy(1,1);
for(i=0;i<=endx-startx;i++)
putch(’-’);
gotoxy(1,endy-starty);
for(i=0;i<=endx-startx;i++)
putch(’-’);
for(i=2;i<=endy-starty;i++){
gotoxy(1,i);
putch(’1’);
gotoxy(endx-startx+1,i);
putch(’1’);
}
}
main()
{
voidborder(int,int,int,int);
clrscr();
window(6,8,38,12);
border(6,8,38,12);
gotoxy(2,2);
printf("window1");
window(8,16,40,24);
border(8,16,40,24);
gotoxy(3,2);
printf("window2");
getch();
}
4.clreol()清除光标行尾字符函数
功能:
函数clreol()在当前字符窗口中清除从光标位置到行尾的所有字符,而光标位置保持不变。
用法:
他的调用方式为voidclreol(void);
说明:
此函数的相应头文件为conio.h
返回值:
无
例:
程式中使用了函数clreol()和clrscr()
#include"conio.h>
voidmain()
{
registerinti;
gotoxy(6,8);
printf("Thisisatestoftheclreol()function.");
getch();
gotoxy(6,8);
clreol();
for(i=0;i<20;i++)
printf("Hello\n");
getch();
clrscr();
}
5.insline()插入空行函数
功能:
函数insline()插入一空行到当前光标所在行上,同时光标以下的所有行都向下顺移一行。
用法:
此函数的调用方式为voidinsline(void);
说明:
该函数只用于文本方式,并且在当了符窗口才有效。
这个函数的对应头文件是conio.h
返回值:
无
例:
程式给出了insline()函数的用法。
#include"conio.h"
voidmain()
{
registserinti;
clrscr();
for(i=1;i<24;i++)
{
gotoxy(1,i);
printf("Thisisline%d\n",i);
}
getch();
gotoxy(1,10);
insline();
getch();
}
6.delline()删除一行函数
功能:
函数delline()删除当前窗口内光标所在行,同时把该行下面所有行都上移一行。
用法:
此函数调用方式为voiddelline(void);
说明:
注意,如果当前窗口小于整个屏幕,那么该函数只影响到窗口内的字符。
这个函数相应的头部文件是conio.h
返回值:
无
例:
先在屏幕上显示16行文字,然后删除第4行
#include"conio.h"
voidmain()
{
registerinti;
clrscr();
for(i=0;i<16;i++)printf("line%d\n",i);
getch();
gotoxy(1,4);
delline();
getch();
}
7.gettext()拷进文字函数
功能:
函数gettext()用于文本状态下将屏幕上矩形域内的文字拷进内存。
用法:
该函数调用方式为intgettext(intleft,inttop,intright,intbottom,void*buffer);
说明:
函数中参数left,top为矩形区域的左上角坐标,right,bottom为其右下角坐标,这些坐标是屏幕的绝对坐标,不是窗口的相对坐标。
buffer指针必须指向一个足够保存该矩形域内文字的内存。
所用内存大小按下式计算:
点头用字节数=矩形哉内的行数×矩形域的列数×2
这里将行数乘以列数再乘以2的原因是保存屏幕上每个字符要用两个字节存储单元,一个字节存储单元存放字符本身,而另一个存放其属性。
此函数相应的头文件是conio.h
返回值:
若函数调用成功则返回1,否则返顺0。
例:
把屏幕左上角点(1,1)和右下角点(10,10)的区域拷贝到buf指向的内存中去。
buf=(char*)malloc(10*10*2);
if(!
buf)gettext(1,1,10,10,buf);
8.puttext()拷出文字函数
功能:
函数puttext()把先前由gettext()保存到buffer指向的内存中的文字拷出到屏幕上一个矩形区域中。
用法:
此函数调用方式为intputtext(intleft,inttop,intright,intbottom,void*buffer);
说明:
函数里left,top为给出的屏幕上矩形区域的左上角点,right,bottom为其右下角点,其坐标是用屏幕的绝对坐标,而不是用窗口的相对坐标。
该函数相应的头文件为conio.h
返回值:
函数调用成功返回值为1,否则返回0。
例:
屏幕上某个区域内容拷进buf指向的内存中,然后又将这些文字拷出到屏幕上新位置。
buf=(char*)malloc(10*10*2);
gettext(1,1,10,10,buf);
puttext(16,16,30,30,buf);
9.movetext()移动文字函数
功能:
函数movetext()将屏幕上一个矩形区域的文字移到另一个区域上。
用法:
该函数调用方式为intmovetext(intleft,inttop,intright,intbottom,intnewleft,intnewtop);
说明:
上面left,top为矩形区域上角坐标,right,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图像 编程