Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Розробка програми для перегляду bmp файлів

Реферат Розробка програми для перегляду bmp файлів





але доданих для вирівнювання

; тепер IgnoredBits дорівнює числу ігнорованих бітів при малюванні

; будемо читати з файлу растр блоками по BlockSize байт і записувати в Rastr

; цикл для читання з файлу блоків растру: Rastr, BlockSize; читаємо блок растра з файлаReadFileError; якщо помилка доступу, то сообщаемax, 0; якщо досягнуто кінець файлу _Skip; _ то виходимо з ціклаDrawBlock; обробка блокаax , cx; якщо це був останній блок, то _Skip; _ виходимо з файлаReadBlock; читаємо наступний блок: CloseFile; закриваємо файлah, 00; ф-ія для очікування натискання клавіші16h; чекаємо поки користувач не натисне будь-яку клавішу, а потім виходимо

; відновимо попередній відеорежімah, ah; ah = 0 - ф-ія для встановлення графічного режімаal, OldScreenMode; установка попереднього режіма10h; встановлюємо графічний режим за допомогою переривання BIOSax, 4C00h21h; вихід з програми:; у зображення занадто великий розмір (більше ніж 320x200) CLoseFileEMsg5:; висновок повідомлення про помилку, у разі виникнення помилки чтеніяEMsg4Begin

; Функція для закриття файлу

; ВХІД: sp повинен вказувати на дескриптор файлу:

; закриття файлаah, 3eh; 3eh - ф-ія DOS для закриття файлаbx, Descriptor21h; закрити)

; ф-ія для відтворення одного пікселя

; Вхід: al = індекс палітриprocdx; збережемо dx в стек, щоб не зіпсувати

; якщо CurX вказує на біт, який не входить в зображення, то пропускаємо рісованіеcx, word ptr [biWidth]; в cx - ширина ізображеніяcx, CurX; якщо поточний мальованої піксель виходить за межі зображення _SkipDraw; _ то пропускаємо рісованіеCurX, 319SkipDrawCurY, 199SkipDraw

; малюємо точку

; mov cx, CurX; номер колонки - поточний (CurX)

; mov dx, CurY; номер рядка - поточний (CurY)

; mov ah, 0ch; 0ch - ф-ія для малювання крапки в відеосервісі BIOS

; mov bh, 0; номер відеосторінки = 0

; int 10h; малюємо точку

; малюємо точкуax; збережемо ax щоб не іспортітьax, 320; знайдемо розташування потрібного байта в пам'яті відеобуфераCurY; помножимо на номер строкіax, CurX; додамо номер колонкіdi, ax; es: di вказує на байт, відповідний даному байтуax; відновимо значення індексу палітриbyte ptr es: [di], al; копіюємо індекс палітри даного пікселя в видеобуфер:

; перевірка досягнення кінця рядка ізображеніяCurX; переходимо на наступний піксельcx, word ptr [biWidth]; в cx - ширина ізображеніяcl, IgnoredBits; додаємо до неї кол-во бітів, які не повинні отрісовиватьсяCurX, cx; якщо поточний номер пікселя НЕ дорівнює останньому _SkipEqu; _ то пропускаємо перехід до наступного рядка:

; перехід на слід. строкуCurX, 0; тепер номер 1о...


Назад | сторінка 10 з 13 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Номер люкс
  • Реферат на тему: Розробка програми для підрахунку хеш-суми файлу і тексту з графічним інтерф ...
  • Реферат на тему: Якщо лікарняний невірно розрахований
  • Реферат на тему: Якщо ваш працівник затриманий чи засуджений
  • Реферат на тему: Якщо ремонт виявився модернізацією