Вирізання картинок з екрану та запис їх в BMP форматі (для графіки) і TXT форматі (для тексту)
Міністерство освіти та науки УкраїниКіровоградський Державний Технічний університетКафедра програмного забезпеченняКУРСОВА РОБОТАз дисципліни“Програмування мовою ASM-на тему:“Вирізання картинок з екрану та запис їх в BMP форматі (для графіки) і TXT форматі (для тексту)”ЗмістВступПостановка задачіОбґрунтування методу розв’язкуАлгоритм програмиРеалізація програмиСистемні вимогиІнструкція користувачаВисновокВикористана літератураЛістинг програми1. ВступПри роботі буває необхідно “перехопити” текстову або графічну інформацію, яку виводять на екран різні програми, в текстовий або графічний файл для подальшої обробки. Для такої мети використовують резидентні програми.Для роботи нам знадобиться опис заголовку ВМР-файла. Його можна знайти в додатку (в лістингу файла grabber.inc).2. Постановка задачіРозробити резидентну програму на асемблері, яка дозволить перехопити зміст текстового та графічного екрану у файл (відповідно TXT і BMP).3. Обґрунтування вибору методів розв’язку задачіДля того, щоб записувати зміст екрану, будемо читати його з відеопам’яті. Для роботи з файлами можна використовувати функції ОС (з переривання 21h). Але при використанні функцій ДОС з обробника переривань виникає проблема нереентерабельності ДОС (тобто не можна викликати сервіс ДОС під час роботи будь-якої її функції). Тому використовується перехоплення не документованого переривання ДОС 28h, яке викликається в той момент, коли система вільна. В цей час можна викликати функції.Графічних режимів дуже багато. Для реалізації виберемо режим 3 (текстовий ) і 13h (графічний – режим 320х200х256 кольорів).4. Алгоритм програми1. Встановити обробники переривань 5 і 28h.2. Залишити резидент в пам'яті.Обробка переривання 5.1. Встановити змінну, яка сигналізує про натиснення клавіші, в 1.Обробка переривання 28.1. Визначити режим екрану.2. Відкрити файл на запис.3. У разі текстового файлу записати побайтно зміст відеопам’яті у файл і перейти на п. 5.4. У разі графіки заповнити структуру заголовка ВМР-файла, записати палітру і всі графічні дані у файл. Графіка записується, починаючи з лівого нижнього кута екрану.5. Закрити файл.6. Стоп5. Реалізація програмиПісля запуску програма встановлює обробник на переривання 5 (клавіша Print Screen) та 28h (переривання при якому відбувається збереження екрану). Потім вона залишається резидентною в пам’яті.При натисканні клавіші Print Screen встановлюється ознака про її натиснення. Коли ДОС звільняється і виконує переривання 28, то при встановленій ознаці відбувається збереження екрану. Створюється або обнуляється файл, визначається поточний режим екрану і спосіб запису, з разі текстового режиму у файл записується зміст відеопам’яті у вигляді рядків, а у разі графічного – заповнюється структура BMP файла, визначається палітра, і все це разом зі змістом графічної області відеопам’яті записується у файл. Після цього файл закривається і обробка завершується.6. Системні вимогиПроцесор: 80286 або старший.Пам’ять: 640 К або більшеЕкран: CGA або вище для тексту, VGA і вище для графікиОС: MS-DOS 4.0 або вище7. Інструкція користувачаДля початку роботи програми треба запустити файл GRABBER.COM. Програма встановить свою резидентну частину і завершиться. Для зберігання текстового або графічного екрану треба натиснути клавішу Print Screen. У разі текстового режиму у поточному каталозі з’явиться файл dump.txt зі змістом екрану, а у разі графічного режиму 320х200х256 – файл dump.bmp. Для вивантаження програми з пам’яті можна використати функції оболонки VC.8. ВисновокОтже, завдяки виконанню роботи продемонстровано методи створення резидент них програм, використання функцій MS-