Grafika komputerowa Wykład 2 Wykorzystanie podstawowych usług bibliotecznych (API) w operacjach graficznych.

Slides:



Advertisements
Podobne prezentacje
Monitory i systemy graficzne
Advertisements

Grafika Wektorowa Bitmapowa.
Java dla studentów II roku Wydziału Fizyki PW Przemysław Duda, 2012
Grafika komputerowa Wykład 1 Wprowadzenie
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Oprogramowanie rejestratora pikosekundowych przebiegów elektrycznych
Koordynatorzy: Krzysztof BIKONIS Marek MOSZYŃSKI
Wzorce projektowe w J2EE
Wstęp do programowania obiektowego
Malowanie na ekranie- Paint (Paintbrush).
Tworzenie nowej biblioteki
Grafika wektorowa i bitmapa
Podstawy programowania II
System webowy do tworzenia kolektywnych prototypów aplikacji sieciowych i mobilnych Łukasz Przywarty
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
System operacyjny. System operacyjny Co to jest system operacyjny: jest szczególnym rodzajem programu, którego zadaniem jest koordynowanie pracy.
Instytut Tele- i Radiotechniczny WARSZAWA
Podstawowe pojęcia i problemy związane z przetwarzaniem plików graficznych.
EDYTOR GRAFIKI RODZAJE GRAFIKI
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
Podstawy programowania II
Źródła: podręcznikopracował: A. Jędryczkowski.
Aplety w javie.
Komputerowe wspomaganie pracy inżyniera
Budowa systemu komputerowego
Opracowanie Dorota Libera
GRAFIKA KOMPUTEROWA Co mamy z reklamy?
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Konfiguracja systemu Windows
Programowanie obiektowe – zastosowanie języka Java SE
Narzędzia administracyjne
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
EDYTOR GRAFIKI "PAINT" Prezentacja ma na celu zapoznanie uczniów z podstawowymi funkcjami edytora grafiki Paint.
Ms Access Formularze i raporty Marzena Nowakowska KIS, WZiMK, PŚk
SPECJALNOŚĆ: Oprogramowanie Systemowe
Animacja na stronie internetowej
System plików.
Grafika Komputerowa i wizualizacja
Podstawowe narzędzia programu Paint
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Informatyka +.
Podstawy języka skryptów
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
Weed Wizualna eksploracja danych Tomasz Płuciennik Marcin Mielnicki Michał Krysiński Rafał Fabiański.
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Wstęp do Podstawy Programowania
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Grafika rastrowa - parametry
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Podstawy programowania
BUDOWA WEWNĘTRZNA KOMPUTERA
Multimedia w HTML5 Statyczne witryny internetowe 2TIa Marek Kwiatkowski.
Systemy operacyjne - Budowa systemu komputerowego i jego zadania
Dokumentacja programu komputerowego i etapy tworzenia programów.
Grafika komputerowa.
Grafika komputerowa – Grafika wektorowa i rastrowa
Edytor tekstu Word – możliwości graficzne
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Wyższa Szkoła Informatyki i Zarządzania W Bielsku-Białej Kierunek informatyka Specjalność : Systemy informatyczne Praca dyplomowa inżynierska : System.
Akademia ETI 2016 LABORATORIUM 2 – OBSŁUGA WYŚWIETLACZA GRAFICZNEGO.
Graficzny Interfejs Użytkownika
Wykład 4 Dr Aneta Polewko-Klim
T. 18. E Proces DGA - Działania (operatorka).
Grafika rastrowa i wektorowa
Programowanie obiektowe – zastosowanie języka Java SE
PGO GUI - Swing Michail Mokkas.
Zapis prezentacji:

Grafika komputerowa Wykład 2 Wykorzystanie podstawowych usług bibliotecznych (API) w operacjach graficznych

Dlaczego stosujemy gotowe komponenty: Współczesna inżynieria oprogramowania opiera się na możliwie najszerszym wykorzystaniu gotowych uniwersalnych komponentów Wykorzystanie gotowych komponentów zmniejsza nakłady pracy na budowę aplikacji, redukuje ryzyko błędów i eliminuje konieczność szczegółowego zapoznawania się z niskopoziomowymi technikami i algorytmami System operacyjny i środowiska do tworzenia aplikacji dostarczają zestawu komponentów (bibliotek, klas, funkcji, czasem gotowych do wywołania programów) realizujących typowe funkcje. Taki zestaw tworzy interfejs programistyczny (ang. Application Programming Interface – API) do usług określonej kategorii – w naszym przypadku związanych z grafiką komputerową W przypadku grafiki odpowiednie API stwarzają dodatkowo poziom abstrakcji izolujący programistę od specyfiki dołączonego sprzętu W przypadku stosowania JP Java uzyskujemy dodatkowo niezależność od środowiska (sprzętu, systemu operacyjnego), w którym wykonuje się nasza aplikacja graficzna

Typowa architektura komponentów wspomagających aplikacje graficzne: Aplikacja użytkownika Biblioteki specyficzne dla środowiska deweloperskiego i języka programowania (AWT, Swing, Java2D, Java3D w JP Java) Adapter OpenGL Adapter usług rodzimych Adapter Direct3D System operacyjny Usługi „rodzime” systemu operacyjnego (np.. GDI w windows) OpenGL Direct3D Sterowniki specyficzne dla sprzętu Sprzęt graficzny

Ogólne zasady korzystania z podstawowych usług API dla grafiki komputerowej 2D: Podstawowe tryby tworzenia obrazu: poza ekranem - obraz tworzony (lub przetwarzany) jest w obiekcie (strukturze danych), który stanowi reprezentację tablicy pikseli obrazu rastrowego. obiekt taki nie jest bezpośrednio związany z GUI i operacje graficzne na nim wykonane nie są widoczne na ekranie. na ekranie - obraz tworzony jest bezpośrednio na ekranie, wszelkie operacje na obrazie są natychmiast widoczne na ekranie. do dostępu do ekranu służy odpowiednio zdefiniowana klasa związana z oknem zarządzanym przez modułu GUI w SO. operacje w tym trybie mogą być wolniejsze i mogą obowiązywać dodatkowe ograniczenia wynikające z możliwości zainstalowanego sprzętu (np. ograniczona maksymalna rozdzielczość obrazu).

Ogólne zasady korzystania z podstawowych usług API dla grafiki komputerowej 2D: Metody 1 (poza ekranem) używamy w operacjach związanych z przetwarzaniem obrazu lub jego generowaniem w trybie niezależnego ustawiania poszczególnych pikseli. Metody 2 (na ekranie) używamy w aplikacjach wymagających interakcji użytkownika z obrazem (np. programy do malowania, konfigurowania scen 3D poprzez manipulację na jej widoku, programy do modelowania geometrycznego, programy typu CAD itp). Przykład tworzenia obrazu poza ekranem i zapisania gotowego obrazu na ekran (ang. back buffer) Przykład operacji graficznych wykonywanych bezpośrednio na ekranie w trybie interakcyjnym – manipulacja pozycją kamery w scenie 3D Niezależnie od używanej metody operacja mogą mieć charakter operacji grafiki wektorowej lub grafiki rastrowej.

Kontekst rysowania określa takie parametry jak: Ogólne zasady korzystania z podstawowych usług API dla grafiki komputerowej 2D: Obrazy tworzymy na powierzchni - panelu, która odpowiada dwuwymiarowej tablicy pikseli obrazu rastrowego (również dla operacji wektorowych) Sposób wykonania operacji graficznej (np. rysowania odcinka) zależy od kontekstu rysowania. Kontekst rysowania określa takie parametry jak: kolor pisaka, szerokość pisaka, styl linii (ciągła, przerywana, kropkowa), tryb rysowania - sposób w jaki kolor piksela kanwy w punkcie rysowania wpływa na kolor piksela po narysowaniu: zastępowanie koloru (kolor wynikowy zawsze taki jak pisaka), mieszanie kolorów (kolory tła i pisaka są mieszane w proporcjach określonych przez współczynniki zdefiniowane dla tła i pisaka (tzw. współczynniki kanału alfa) tryb XOR

Elementarne operacje graficzne: Podstawowe operacje grafiki wektorowej: ustawianie kontekstu rysowania (kolor, rodzaj i grubość linii itp..) rysowanie kształtu (odcinka, łamanej, boków figury geometrycznej, krzywej itp.) wypełnianie kształtu (zamkniętego) wpisywanie tekstu do obrazu Podstawowe operacje grafiki rastrowej: spakowanie/rozpakowanie struktury danych reprezentujących atrybuty pojedynczego piksela odczyt atrybutów wskazanego piksela, zapis atrybutów wskazanego piksela, odczyt bloku pikseli zapis bloku pikseli Dla obydwu trybów: inicjalizowanie pustego obrazu (tworzenie kanwy), odczyt z pliku graficznego zapis do pliku graficznego

Pakiety do grafiki 2D w środowisku Java: W Javie API do tworzenia grafiki 2D i operacji na obrazach jest bardzo rozbudowane. Przedstawimy tylko najpotrzebniejsze i najczęściej używane komponenty i typowy sposób pracy z nimi. AWT – Abstract Window Toolkit, pakiet do budowy graficznych interfejsów użytkownika (ang. Graphical User Interface - GUI) pochodzący z pierwszych wersji Javy wykorzystujący usługi rodzimego SO Java2D - zestaw komponentów rozszerzających AWT wspomagających efektywną implementację grafiki w Javie Swing - pakiet do budowy GUI niezależny od rodzimej platformy o funkcjonalności szerszej niż AWT Java Advanced Imaging - rozbudowany pakiet do wykonywania zaawansowanych operacji z zakresu przetwarzania i analizy obrazów

Pakiety do grafiki 2D w środowisku Java: Okno na ekranie jest reprezentowane za pomoca obiektu klasy JFrame Z każdym obiektem JFrame związana jest powierzchnia zawartości Referencję do powierzchni zawartości można uzyskać za pomocą metody getContentPane(); Do powierzchni zawartości można dodać panel (obiekt typu JPanel) służący do rysowania i umieszczania innych komponentów GUI. Gdy moduł zarzadzający oknami stwierdzi, że należy utworzyć lub odświeżyć obraz na panely wywoła on funkcję paintComponent() klasy JPanel Aby utworzyć własna procedurę rysowania obrazu należy utworzyć klasę dziedziczącą z JPanel i jej obiekt dodać do powierzchni zawartości a operacje rysujące umieścić w metodzie paintComponent() Rysowanie odbywa się za pomocą kontekstu rysowania przekazanego jak parametr do automatycznie wywołanej metody paintComponent()