Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
36
Добавлен:
02.05.2014
Размер:
765.95 Кб
Скачать

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();

}

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