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

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





криття функцією сервісу DOSbx, dx; за адресою в bx лежить розмір буфера fname для вводаbx; за адресою в bx - кількість байт в строкеal, [bx]; в al - кол-во записаних байт в fnamebl, al; тепер bx указвают на останній записаний байт в строкеbl; bx вказує на слід. після останнього байт [bx], 0; і поміщаємо туди нуль-байтal, al; якщо ввели порожній рядок _ExitNow; _ то виходимо з програми:

; Відкриємо файлdx, fnameah, 3dh; ф-ія для відкриття файлаal, al; режим - чтеніеdxdx; тепер dx вказує на початок рядка fname21h; відкрили файлFileNotFound; якщо помилка - видаємо повідомлення - знову вводимо ім'я файлаDescriptor , ax

; Читаємо BITMAPFILEHEADERbfType, HeaderSizeRead1Error

; Перевірка сигнатури формату BMPax, word ptr bfType; в ax поміщаємо перші 2 байти структури заголовка. Вони повинні бути BMax, 'MB'; оскільки слова в пам'яті зберігаються в зворотному порядку - то порівнюємо саме з MBFileNotBMP; Якщо перші 2 байти НЕ BM, то повідомляємо про те, що файл не BMP і знову йдемо на введення імені файлу

; Читання структури BITMAPINFOHEADER з файлаbiSize, InfoHeaderSize

; Перевірка: чи є BMP монохромним? dx, [biBitCount]; в dx - кількість біт на 1 піксель в картінкеdx, 1; порівнюємо кол-во біт на піксель з одиницею. Одиниця - говорить про те, що бітмап монохромнийFileNotMonoChrome; якщо знімок не монохромне, то говоримо про це і знову запитуємо ім'я файлу

; Виконаємо обробку опції командного рядка/Idl, I_Optiondl, dl; якщо опція включена _SkipSizeCheck; _ то пропускаємо перевірку розмірів ізображеніяdx, word ptr [biWidth]; в dx - ширина ізображеніяdx, 320; якщо ширина зображення _IncorrectSize; більше ніж 320, то повідомляємо про невірний размереdx, word ptr [biHeight]; в dx - висота ізображеніяdx, 200; якщо більше ніж 200, то _IncorrectSize; _ то повідомляємо про невірний розмірі:

; зчитуємо палітру

; для монохромних зображень - 2 кольори, 2 структури RGBQuad. Сc1B, PalleteSizeReadFileError

; перемішайте в файлі на bfOffBits, тобто на початку масиву растраah, 42h; ф-ія для переміщення по файлуbx, Descriptor; відновлюємо дескриптор файлу з стекаal, al; встановлюємо режим зміщення - відносно початку файлаdx, word ptr bfOffBits; зміщення вказується як (CX * 65536) + DX. Вобщем-то DX завжди буде дорівнювати 3E для монохромних зображення, а CX = 0cx, word ptr bfOffBits +121 h; переміщаємося

; установка графічного режімаSetDisplay

; ініціалізація початкових параметрів рісованіяcx, word ptr [biHeight]; в cx висота зображення в пікселяхCurY, cx; оскільки рядки зображення в BMP розташовані навпаки, то починаємо малювати знизу вгору! CurX, 0; починаючи з першого правого пікселя ізображеніяCalculatePar; викликаємо ф-ію для обчислення кол-ва бітів, які не належать зображенню, ...


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





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

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