• Nie Znaleziono Wyników

Laboratorium grafiki komputerowej i animacji Ćwiczenie II - Formaty plików graficznych.

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium grafiki komputerowej i animacji Ćwiczenie II - Formaty plików graficznych."

Copied!
2
0
0

Pełen tekst

(1)

Laboratorium grafiki komputerowej i animacji Ćwiczenie II - Formaty plików graficznych.

Przygotowanie do ćwiczenia:

1. Zapoznać się z budową podstawowych pliku graficznego BMP.

2. Zapoznać się z zasadami projektowania aplikacji wyświetlających w oknie programu zawartości plików graficznych.

Przebieg ćwiczenia:

1. Zapoznanie się z programem BmpView

2. Uzupełnienie programu BmpView o fragmenty kodu wymagane, aby zbudować przeglądarkę plików typu bitmapa:

a. Uzupełnić obsługę komunikatu ID_PLIK_OTWORZ:

- otworzyć plik z obrazem (funkcja: fopen(), nazwa pliku znajduje się w tablicy tekstowej „FileName”)

- zaalokować bufor (funkcja malloc() lub calloc()) w pamięci o rozmiarze nagłówku pliku typu bmp (sizeof(BITMAPFILEHEADER)); na potrzebę tej operacji zdefiniowano w programie wskaźnik BmpFilHeadPtr

- przekopiować nagłówek pliku do zaalokowanego bufora (funkcja fread()) - odczytać rozmiar pliku

- zaalokować bufor w pamięci o rozmiarze całego pliku typu bmp; na potrzebę tej operacji zdefiniowano w programie wskaźnik BmpDataPtr - przywrócić wskaźnik odczytu pliku na początek pliku (funkcja fseek()) - przekopiować zawartość całego pliku do obszaru pamięci wskazywanego

przez wskaźnik BmpDataPtr

- ustawić zdefiniowane wskaźniki BmpInfPtr, BmpInfHeadPtr na odpowiednie miejsca w buforze wskazywanym przez BmpDataPtr

- na podstawie danych z nagłówka pliku określić początek tablicy pikseli w pliku bmp

- utworzyć bitmapę zależną od sprzętu przy pomocy funkcji CreateDIBitmap (w materiałach do ćwiczenia szczegółowo opisano jak uzyskać poszczególne parametry funkcji); wartość zwracaną przez funkcję przypisać utworzonej w pliku zmiennej mHBmp

- zamknąć otwarty plik (funkcja fclose())

- zapamiętać rozmiary obrazu w zmiennych: mBmp_Width, mBmpHeight - zwolnić wszystkie zaalokowane obszary pamięci (fukcja free()); dane o

obrazie przechowywane są w uchwycie mHBmp, rozmiary obrazu potrzebne później - w zmiennych mBmp_Width, mBmpHeight

- wymusić odmalowanie zawartości okna programu przez wywołanie funkcji: InvalidateRect(hwnd,NULL,TRUE)

b. Uzupełnić obsługę komunikatu WM_PAINT:

(2)

- Sprawdzić, czy wartość zmiennej mHBmp jest różna od 0 (jeśli jest różna, to oznacza, że stworzona została mapa bitowa w pamięci programu i można dokonać wyświetlenia bitmapy w oknie)

- Utworzyć pamięciowy kontekst urządzenia na podstawie kontekstu urządzenia związanego z oknem na którym ma być wyświetlona bitmapa (funkcja: CreateCompatibleDC())

- Przyłączyć do pamięciowego kontekstu urządzenia bitmapę DDB (makro SelectBitmap())

- Dokonać przekopiowania bitmapy z pamięciowego kontekstu urządzenia do kontekstu urządzenia związanego z oknem, na którym ma być wyświetlona bitmapa (funkcja BitBlt())

- Odłączyć od pamięciowego kontekstu urządzenia bitmapę DDB (makro SelectBitmap())

- Usunąć pamięciowy kontekst urządzenia (funkcja DeleteDC()) Zagadnienia nadobowiązkowe:

1. Skonstruować przeglądarkę map bitowych z wykorzystaniem funkcji wyświetlających obraz w oknie bezpośrednio na podstawie danych zgromadzonych w formacie "upakowany DIB" (StretchDIBits(), SetDIBitsToDevice).

2. Uzupełnić przeglądarkę o kod umożliwiający wyświetlanie jednego z niżej podanych formatów plików graficznych: PCX, TGA, GIF, TIF

Cytaty

Powiązane dokumenty

Celem prac na zajęciach laboratoryjnych jest zdefiniowanie parametrów oświetlenia i oświetlenie modelu manipulatora Puma (rysunek 1.1).. Wynikiem prac na dzisiejszych

Jeśli liczby podawane jako współrzędne tekstur przekraczają zakres 0.0 - 1.0, to wyświetlanie bitmap zależy od ustawień podanych w wywołaniu funkcji

 Wprowadzono nową funkcję odczytującą plik typu *.bmp i zwracającą wskazanie na tablicę pikseli dostoswaną do konwersji na teksturę OpenGL (szczegóły

Diagram sekwencji konstruktora

Mapa aplikacji – kolekcja formatów zapisu i odczytu z pliku,}. odtwarzanie obiektów wraz

12) Sprawdź, czy i-ty element jest różny od klucza: a<>klucz- jeśli nie, idź dalej, w przeciwnym wypadku przejdź do kroku 9. 13) Wyświetl numer i elementu 14) przejdź do

Wprowadzenie do tematu: Celem lekcji jest zapoznanie się z tworzeniem stron na przykładzie prostej struktury dokumentu w HTML.. jak powinien być sformatowany tekst,

Proszę zwrócić uwagę, że zdarzenie Click na przyciskach btnDanzeZPliku i btnZapisz jedynie wyświetla odpowiednie okna dialogowe (OpenFileDialog1 i Save FileDialog1)