initgraph:初始化图形系统

转载 2006年05月26日 15:28:00

initgraph
【功能】初始化图形系统。
【原型】void far initgraph ( int far *graphdriver, int far *graphmode, char far *pathtodriver)
【位置】graphics.h

 

★图形模式的初始化★
    不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器, 在不同
模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将
显示器设置成为某种图形模式, 在未设置图形模式之前, 微机系统默认屏幕为文
本模式(80列, 25行字符模式), 此时所有图形函数均不能工作。设置屏幕为图形
模式, 可用下列图形初始化函数:
     void far initgraph(int far *gdriver, int far *gmode, char *path);
    其中gdriver和gmode分别表示图形驱动器和模式, path是指图形驱动程序所
在的目录路径。(path路径名中不能有空格)有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。
    图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。根据不同的图形
适配器有不同的图形驱动程序。例如对于EGA、 VGA 图形适配器就调用驱动程序
EGAVGA.BGI。

               表2. 图形驱动器、模式的符号常数及数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     图形驱动器(gdriver)          图形模式(gmode)
   ───────────     ───────────    色调  分辨率
    符号常数    数值           符号常数     数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    CGA          1            CGAC0           0          C0   320*200
                              CGAC1           1          C1   320*200
                              CGAC2           2          C2   320*200
                              CGAC3           3          C3   320*200
                              CGAHI           4          2色  640*200
───────────────────────────────────
    MCGA         2            MCGAC0          0          C0   320*200
                              MCGAC1          1          C1   320*200
                              MCGAC2          2          C2   320*200
                              MCGAC3          3          C3   320*200
                              MCGAMED         4          2色  640*200
                              MCGAHI          5          2色  640*480
───────────────────────────────────
    EGA          3            EGALO           0         16色  640*200
                              EGAHI           1         16色  640*350
───────────────────────────────────
    EGA64        4            EGA64LO         0         16色  640*200
                              EGA64HI         1          4色  640*350
───────────────────────────────────
    EGAMON       5            EGAMONHI        0          2色  640*350
───────────────────────────────────
    IBM8514      6            IBM8514LO       0        256色  640*480
                              IBM8514HI       1        256色 1024*768
───────────────────────────────────
    HERC         7            HERCMONOHI      0          2色  720*348
───────────────────────────────────
    ATT400       8            ATT400C0        0          C0   320*200
                              ATT400C1        1          C1   320*200
                              ATT400C2        2          C2   320*200
                              ATT400C3        3          C3   320*200
                              ATT400MED       4          2色  320*200
                              ATT400HI        5          2色  320*200
───────────────────────────────────
    VGA          9            VGALO           0         16色  640*200
                              VGAMED          1         16色  640*350
                              VGAHI           2         16色  640*480
───────────────────────────────────
    PC3270       10           PC3270HI        0          2色  720*350
───────────────────────────────────
    DETECT       0            用于硬件测试
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    例4. 使用图形初始化函数设置VGA高分辨率图形模式
     #include <graphics.h>
     int main()
     {
          int gdriver, gmode;
          gdriver=VGA;
          gmode=VGAHI;
          initgraph(&gdriver, &gmode, "c://tc");
          bar3d(100, 100, 300, 250, 50, 1);       /*画一长方体*/
          getch();
          closegraph();
          return 0;
     }

    有时编程者并不知道所用的图形显示器适配器种类, 或者需要将编写的程序
用于不同图形驱动器, Turbo C提供了一个自动检测显示器硬件的函数,  其调用
格式为:
     void far detectgraph(int *gdriver, *gmode);
    其中gdriver和gmode的意义与上面相同。

    例5. 自动进行硬件测试后进行图形初始化
     #include <graphics.h>
     int main()
     {
          int gdriver, gmode;
          detectgraph(&gdriver, &gmode);     /*自动测试硬件*/
          printf("the graphics driver is %d, mode is %d/n", gdriver,
                 gmode);       /*输出测试结果*/
          getch();
          initgraph(&gdriver, &gmode, "c://tc");
                               /* 根据测试结果初始化图形*/
          bar3d(10, 10, 130, 250, 20, 1);
          getch();
          closegraph();
          return 0;
      }

    上例程序中先对图形显示器自动检测, 然后再用图形初始化函数进行初始化
设置, 但Turbo C提供了一种更简单的方法,  即用gdriver= DETECT 语句后再跟
initgraph()函数就行了。采用这种方法后, 上例可改为:

    例6.
     #include <graphics.h>
     int main()
     {
          int gdriver=DETECT, gmode;
          initgraph(&gdriver, &gmode, "c://tc");
          bar3d(50, 50, 150, 30, 1);
          getch();
          closegraph();
          return 0;
     }
    另外, Turbo C提供了退出图形状态的函数closegraph(), 其调用格式为:
     void far closegraph(void);
    调用该函数后可退出图形状态而进入文本方式(Turbo C 默认方式), 并释放
用于保存图形驱动程序和字体的系统内存。

相关文章推荐

initgraph函数(讲解)

函数名: initgraph()    功 能: 初始化图形系统    函数原型: void far initgraph(int far *graphdriver, int far *grap...

initgraph()函数使用方法

Turbo C对于用initgraph()函数直接进行的图形初始化程序, 在编译和链接 时并没有将相应的驱动程序(*.BGI)装入到执行程序, 当程序进行到intitgraph() 语句时, 再从该函...

【整理】关于Android图形系统的一些事实真相

现在网上满天飞的各类关于Android图像渲染的水文实在让我不爽,下面给大家一些关于Android硬件渲染的事实真相,硬件加速并非大家想的那么完美,而我们也一直在改进!1. Android 一直在使用...

C++面向接口编程实践:基于控制台的图形系统

最近在看《C++ programing language》,第12章练习题的第2题要求实现一个图形系统,要求至少包含Window,Shape,Dot,Line,Rectangle,Circle等图形对...

Android 图形系统剖析

架构      Android 中的图形系统采用 Client/Server 架构。Server (即SurfaceFlinger) 主要由 C++ 代码编写而成。Client 端代码分为两部分...

ADROID 2.1 架构解析 12 图形系统 1 Pixelflinger

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } H2 { margin-bottom: 0.21cm } H2.weste...
  • skdev
  • skdev
  • 2011-07-11 10:29
  • 6172

android 2D图形系统 skia框架基本分析(一)--以后整个skia调用关系图出来

要说到全部的框架实在太多了,有很多地方也不是很明白 如果有看skia源码的朋友欢迎和我讨论。目前有一个核心问题SkBitmapProcShader 的shaderSpan过程其实并不复杂,但是涉及到浮...

Android图形系统分析与移植 -- 五、Android FrameBuffer

最近在研究LCD显示部分, Android对FrameBuffer驱动的使用方式是标准的,在Android的GUI系统中,通过调用FrameBuffer驱动的标准接口,实现显示设备的...

android图形系统详解二:Drawables

Android提供了一个自定义的2D图形库来绘制图像和图像.在android.graphics.drawable包中你就可以找到这些用于2维绘画的通用类.   本文讨论使用Drawable对...
  • nkmnkm
  • nkmnkm
  • 2012-04-01 07:36
  • 6375

[译]关于Android图形系统的一些事实真相

原文链接:http://bigline.cn/word/index.php/2011/12/android-2/ [译]关于Android图形系统的一些事实真相 原文地址:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)