- •Содержание
- •Imagesize
- •Initgraph
- •Installuserdriver
- •Installuserfont
- •Cleardevice
- •Closegraph
- •Detectgraph
- •Drawpoly
- •Ellipse
- •Fillellipse
- •Fillpoly
- •Floodfill
- •Getarccoords
- •Getaspectratio
- •Getbkcolor
- •Getcolor
- •Getdefaultpalette
- •Getdrivername
- •Getfillpattern
- •Getfillsettings
- •Getgraphmode
- •Getimage
- •Getlinesettings
- •Getmaxcolor
- •Getmaxmode
- •Getmaxx
- •Getmaxy
- •Getmodename
- •Getmoderange
- •Getpallete
- •Getpalettesize
- •Getpixel
- •Gettextsettings
- •Getviewsettings
- •Graphdefaults
- •Grapherrormsg
- •_Graphfreemem
- •_Graphgetmem
- •Graphresult
- •Imagesize
- •Initgraph
- •Installuserdriver
- •Installuserfont
- •Linerel
- •Moverel
- •Outtext
- •Outtextxy
- •Pieslice
- •Putimage
- •Putpixel
- •Rectangle
- •Registerbgidriver
- •Restorecrtmode
- •Setactivepage
- •Setallpalette
- •Setaspectratio
- •Setbkcolor
- •Setcolor
- •Setfillpattern
- •Setfillstyle
- •Setgraphbufsize
- •Setgraphmode
- •Setlinestyle
- •Setpalette
- •Setrgbpalette
- •Settextjustify
- •Settextstyle
- •Setusercharsize
- •Setviewport
- •Setvisualpage
- •Setwritemode
- •Textheight
- •Textwidht
Imagesize
-----------------------------------------------------------------
Назначение:Определяет количество байт для хранения части
изображения.
Синтаксис:#include<graphics.h>
unsigned far imagesize(int left, int top, int
right, int bottom);
Замечания:imagesizeопределяет число байт, необходимых
для того, чтобы getimageмог сохранить заданную
часть изображения. Возвращаемый размер образа
включает пространство для хранения ширины и вы-
соты прямоугольника.
Возвращаемоеimagesizeвозвращает размер требуемой области
значениепамяти в байтах. Если требуемый для выбранного
образа размер памяти превышает 64К-1, то
imagesizeвозвращаетOxFFFF(-1).
Переносимость:Данная функция работает только наIBMPCи сов-
местимых моделях при наличии соответствующих
графических адаптеров.
Смотри также: getimage, putimage
-----------------------------------------------------------------
Initgraph
-----------------------------------------------------------------
Назначение:Инициализирует графическую систему.
Синтаксис:#include<graphics.h>
void far initgraph(int far *graphdriver, int
far *graphmode, char far *pathtodriver);
Замечания:initgraphинициализирует графическую систему,
загружая при этом с диска графический драйвер и
переводя систему в графический режим.
Для запуска графической системы вы, во-первых,
должны обратиться к функции initgraph, которая
загрузит графический драйвер и переведет систе-
му в графический режим. Вы можете указать
initgraphконкретные графические драйвер и ре-
жим, либо потребовать автоматического определе-
ния видеоадаптера и подбора соответствующего
драйвера в процессе работы.
Если вы требуете у initgraphсамоопределения,
то для определения графического драйвера и ре-
жима она обращается к detectgraph. Кроме того
initgraphсбрасывает все графические параметры
в их значения по умолчанию (текущая позиция,
палитра, цвет, графическое окно и т.д.) и уста-
навливает graphresultв 0.
Обычно, для установки графического драйвера
initgraphвыделяет (обращаясь к _graphgetmem)
требуемый объем памяти, а затем загружает с
диска соответствующий файл .BGI. В качестве
альтернативы такой динамической схемы загрузки,
вы можете скомпоновать графический драйвер (или
несколько из них) с вашим исполняемым файлом.
(Для большей информации смотри Приложение D.)
pathtodriverзадает маршрут к каталогу, в кото-
ром initgraphбудет искать графические драйве-
ры, initgraphвначале просматривает каталог,
заданный в pathtodriver, а затем, (если их там
нет) - текущий каталог. Таким образом, если
pathtodriverравенNULL, то драйверные файлы
(*.BGI) должны быть в текущем каталоге. Этот же
маршрут задает каталог, в котором функция
settextstyleбудет искать файлы со шрифтами (*.
CHR).
*graphdriverпредставляет собой целое, задающее
используемый графический драйвер. Вы можете за-
давать его значение, используя константы из
приведенного ниже перечисленного типа graphics_
drivers, описанного вgraphics.h
-----------------------------------------------
Константы graphics_driversЧисленное значение
-----------------------------------------------
DETECT0 (требование
автоопределения)
CGA1
MCGA2
EGA 3
EGA64 4
EGAMONO 5
IBM8514 6
HERCMONO 7
ATT400 8
VGA9
PC3270 10
-----------------------------------------------
*graphmodeпредставляет собой целое, задающее
графический режим инициализации (кроме случая,
когда *graphdriver=DETECT, т.к. в этом случае
*graphmodeприсваивается значение максимального
разрешения, допустимого для распознанного драй-
вера). Вы можете задавать значение для
*graphmode, используя нижеперечисленные конс-
танты graphics_modes, описанные вgraphics.h.
-----------------------------------------------------------------
графический graphics_modesЗначение Колонок Палитра Количество
драйвер Xстрок страниц
-----------------------------------------------------------------
CGACGAC0 0 320X200C0 1
CGAC1 1 320 X 200 C1 1
CGAC2 2 320 X 200 C2 1
CGAC3 3 320X200C3 1
CGACI4 640X200 2 ЦВЕТА 1
MCGAMCGAC0 0 320X200C0 1
MCGAC1 1 320X200C1 1
MCGAC2 2 320 X 200 C2 1
MCGAC3 3 320 X 200 C3 1
MCGAMED 4 640 X 200 2 ЦВЕТА 1
MCGAMHI 5 640 X 400 2 ЦВЕТА 1
EGAEGALO0 640X200 16 ЦВЕТОВ 4
EGAHI1 640X350 16 ЦВЕТОВ 2
EGA64EGA64LO0 640X200 16 ЦВЕТОВ 1
EGA64HI1 640X350 4 ЦВЕТА 1
EGAMONO EGAMONOHI 3 640 X 350 2 ЦВЕТА 1*
EGAMONOHI 3 640 X 350 2 ЦВЕТА 2**
HERC HERCMONOHI 0 720 X 348 2 ЦВЕТА 2
ATT400 ATT400C0 0 320 X 200 C0 1
ATT400C1 1 320 X 200 C1 1
ATT400C2 2 320 X 200 C2 1
ATT400C3 3 320 X 200 C3 1
ATT400CMED 4 640 X 200 2 ЦВЕТА 1
ATT400HI 5 640 X 400 2 ЦВЕТА 1
VGA VGALO 0 640 X 200 16 ЦВЕТОВ 2
VGAMED1 640X350 16 ЦВЕТОВ 2
VGAHI2 640X480 16 ЦВЕТОВ 1
PC3270PC3270HI0 720X350 2 ЦВЕТА 1
IBM8514IBM8514HI0 640X480 256 ЦВЕТОВ
IBM8514LO1 1024X768 256 ЦВЕТОВ
* 64 Kна платеEGAMONO
** 256 Kна платеEGAMONO
-----------------------------------------------------------------
В вышеприведенной таблице перечень палитр C0,
C1,C2,C3 соответствует четырем предопределен-
ным четырехцветным палитрам, доступным на сис-
темах CGAи совместимых с ними. В каждой из
этих палитр вы можете выбирать цвета фона (ну-
левой элемент), но остальные цвета зафиксирова-
ны. Подобные палитры более детально описаны в
Главе 8 настоящего приложения (раздел "Управле-
ние цветом"), а сведения о них сведены в следу-
ющую таблицу:
-----------------------------------------------------------------
Номер Цвет, соответствующий значению точки растра
палитры 1 2 3
-----------------------------------------------------------------
0 яркозеленый яркокрасный желтый
1 светлоголубой светломалиновый белый
2 зеленый красный коричневый
3 голубой малиновый светлосерый
-----------------------------------------------------------------
После вызова initgraph*graphdriverи
*graphmodeимеют значения текущего графического
драйвера и текущего графического режима соот-
ветственно.
Возвращаемоеinitgraphвсегда устанавливает внутренний код
значениеошибки; причем в случает отсутствия ошибки дан-
ный код устанавливается в 0. В случае ошибки
*graphdriverустанавливается в -2, -3, -4 или
-5, а graphresultвозвращает такое же значение,
означающее:
-2 Не могу определить графическую плату
-3 Не могу найти файл-драйвер
-4 Некорректный драйвер
-5 Для загрузки драйвера не хватает памяти
Переносимость:Данная функция работает только наIBMPCи
совместимых моделях при наличии соответствующих
графических адаптеров.
Смотри также: closegraph, detectgraph, getfaultpallete,
getdrivername, getmoderange, graphdefaults,
_graphgetmem, graphresult, installuserdriver,
registerbgidriver, restorecrtmode,
setgraphbufsize, setgraphmode.
Пример
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<process.h>
main()
{
int g_driver, g_mode, g_error;
detectgraph(&g_driver, &g_mode,);
if(g_driver< 0)
{
printf("Не определен графический адаптер"
"\n");,exit(1);
}
printf("Определен графический драйвер %d,"
"режим %d\n",g_driver, g_mode);
getch();
if(g_mode == EGAHI)
g_mode=EGALO; /* замена режима в случае
определения EGA */
initgraph(&g_driver, &g_mode, " ");
g_error = graphresult();
if (g_error < 0)
{
printf("Ошибка initgraph: %s\n",
grapherrormsg(g_error)); exit(1);
}
bar(0, 0, getmaxx()/2, getmaxy());
getch();
closegraph();
}
-----------------------------------------------------------------