Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по функциям С++.doc
Скачиваний:
130
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

Imagesize

-----------------------------------------------------------------

НазначениеОпределяет количество байт для хранения части

изображения.

Синтаксис#include<graphics.h>

unsigned far imagesize(int left, int top, int

right, int bottom);

Прототип в graphics.h

Замечания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);

Прототип вgraphics.h

Замечания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();

}

-----------------------------------------------------------------

inport

-----------------------------------------------------------------

НазначениеЧитает из аппаратного порта.

Синтаксис #include<dos.h>

int inport(int port);

Прототип вdos.h

Замечанияinport читает слово из входного порта,

указанного переменной port.

Возвращаемоеinport возвращает прочитанное значение.

значение

ПереносимостьУникальна для процессоров семейства 8086.

Смотри такжеinportb, outport, outportb

-----------------------------------------------------------------