C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Letyshops [lifetime]

 getimage / g / Библиотечн. функции Borland C++

Функция Запоминает битовый образ некоторой области экрана.


Синтаксис          #include <graphics.h>
                   void far getimage(int left, int top, int
                                      right,int bottom, void
                                      far *bitmap);

Файл, содержащий   graphics.h
прототип

Описание           getimage копирует  образ c экрана в память.  left,
                   top,  right и  bottom  определяют  область  экрана
                   прямоугольной  формы,  которая  будет скопирована.
                   bitmap  указывает  на  область  в   памяти,   куда
                   записывается битовый образ.  Первые два слова этой
                   области задают  ширину  и  высоту  прямоугольника,
                   оставшиеся определяют сам образ.

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

Переносимость      Функция уникальна для Borland  C++.  Она  работает
                   только на компьютерах IBM PC и совместимых с ними,
                   оснащенных дисплейными адаптерами, поддерживающими
                   графический   режим.   Функция   не  совместима  с
                   Windows.

Смотрите также     imagesize, putimage, putpixel.

Пример:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include<alloc.h>

void save_screen(void far *buf[4]);
void restore_screen(void far *buf[4]);
int maxx,maxy;

int main(void)
{
int graphdriver = DETECT, gmode, errorcode;
void far *ptr[4];

/* автоматическое определение драйвера и режима */
initgraph(&graphdriver,&gmode,"");

/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk)  /* если ошибка */
{
   printf("Ошибка :%s\n",grapherrormessage(errorcode));
   printf("Для останова нажмите любую клавишу\n");
   getch();
   exit(1);  /* завершение с кодом ошибки */
}
maxx = getmaxx();
maxy = getmaxy();
/* нарисовать на экране изображение */
rectangle(0,0,maxx,maxy);
line(0,0,maxx,maxy);
line(0,maxx,maxy,0)
save_screen(ptr);        /* сохранить экран */
getch();                 /* пауза */
cleardevice();           /* обнуление экрана */
restore_screen(ptr);     /* восстановление экрана */
getch();                 /* пауза */

closegraph();
return 0;
}

void save_screen(void far *buf[4])
{
   unsigned size;
   int ystart=0,yend,yincr,block;
   yincr = (maxy+1)/4;
   yend = yincr;
   size = imagesize(0,ystart,maxx,yend); /* получить размер изо-
                                            браженияв байтах */
   for(block = 0; block<=3; block++)
   {
      if(buf[block] = farmalloc(size))== NULL)
      {
         closegraph();
         printf("Ошибка! Не хватает памяти для сохранения экрана\n");
         exit(1);
      }
   getimage(0,ystart,maxx,yend,buf[block]);
   ystart = yend+1;
   yend += yincr+1;
   }
}
void restore_screen(void far *buf[4]);
{
   int ystart=0,yend,yincr,block;
   yincr = (maxx+1)/4;
   yend = yincr;
   for(block=0;block<=3;block++)
   {
      putimage(0,ystart,buf[block],COPY_PUT);
      farfree(buf[block]);
      ystart = yend+1;
      yend += yincr+1;
   }
}




Letyshops [lifetime]