- •Содержание
- •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).
Переносимость: Данная функция работает только на IBM PC и сов-
местимых моделях при наличии соответствующих
графических адаптеров.
Смотри также: 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 Численное значение
-----------------------------------------------
DETECT 0 (требование
автоопределения)
CGA 1
MCGA 2
EGA 3
EGA64 4
EGAMONO 5
IBM8514 6
HERCMONO 7
ATT400 8
VGA 9
PC3270 10
-----------------------------------------------
*graphmode представляет собой целое, задающее
графический режим инициализации (кроме случая,
когда *graphdriver = DETECT, т.к. в этом случае
*graphmode присваивается значение максимального
разрешения, допустимого для распознанного драй-
вера). Вы можете задавать значение для
*graphmode, используя нижеперечисленные конс-
танты graphics_modes, описанные в graphics.h.
-----------------------------------------------------------------
графический graphics_modes Значение Колонок Палитра Количество
драйвер X строк страниц
-----------------------------------------------------------------
CGA CGAC0 0 320 X 200 C0 1
CGAC1 1 320 X 200 C1 1
CGAC2 2 320 X 200 C2 1
CGAC3 3 320 X 200 C3 1
CGACI 4 640 X 200 2 ЦВЕТА 1
MCGA MCGAC0 0 320 X 200 C0 1
MCGAC1 1 320 X 200 C1 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
EGA EGALO 0 640 X 200 16 ЦВЕТОВ 4
EGAHI 1 640 X 350 16 ЦВЕТОВ 2
EGA64 EGA64LO 0 640 X 200 16 ЦВЕТОВ 1
EGA64HI 1 640 X 350 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
VGAMED 1 640 X 350 16 ЦВЕТОВ 2
VGAHI 2 640 X 480 16 ЦВЕТОВ 1
PC3270 PC3270HI 0 720 X 350 2 ЦВЕТА 1
IBM8514 IBM8514HI 0 640 X 480 256 ЦВЕТОВ
IBM8514LO 1 1024X 768 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 Для загрузки драйвера не хватает памяти
Переносимость: Данная функция работает только на IBM PC и
совместимых моделях при наличии соответствующих
графических адаптеров.
Смотри также: 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();
}
-----------------------------------------------------------------
