Tworzenie grafiki GDI

Podobne dokumenty
Wielowątkowość Klasyczny program sekwencja rozkazów działająca na wyodrębnionym obszarze pamięci. Proces program wykonujący się w ramach jednej przest

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

całkowicie obsługuje GDI dla kompatybilności z istniejącymi aplikacjami optymalizacja wielu cech GDI rozszerzenie o nowe możliwości

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

Szybkie tworzenie grafiki w GcIde

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

Projektowanie graficzne. Wykład 2. Open Office Draw

Animacje z zastosowaniem suwaka i przycisku

Microsoft Small Basic

Obsługa programu Paint. mgr Katarzyna Paliwoda

Programowanie obiektowe

Maskowanie i selekcja

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

Podstawy Swing. Tomasz Borzyszkowski

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej

Obsługa programu Paint materiały szkoleniowe

Tworzenie prostych obrazów wektorowych w programie CorelDRAW 12

Programowanie na poziomie sprzętu. Programowanie w Windows API

Dziedziczenie. Zadanie 1

Ustalanie dostępu do plików - Windows XP Home/Professional

Ćwiczenie 2 Warstwy i kształty podstawowe

Kurs Adobe Photoshop Elements 11

Kolory elementów. Kolory elementów

Formularze w programie Word

Edytor tekstu OpenOffice Writer Podstawy

Ćwiczenie 6 Animacja trójwymiarowa

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Rozdział 1. Wstęp 5. Rozdział 2. Pierwsze kroki 13. Rozdział 3. Podstawy rysunku wektorowego 35

Instrukcja instalacji i obsługi systemu AR4vision (wersja 1.0.0)

Modelowanie obiektowe - Ćw. 1.

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Galileo v10 pierwszy program

Spis treści. Księgarnia PWN: Roland Zimek - Swish Max3

Spis treści. Księgarnia PWN: Roland Zimek - SWiSH Max2 i SWiSH Max3. Wprowadzenie... 9

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

GRAFIKA WEKTOROWA. WYKŁAD 1 Wprowadzenie do grafiki wektorowej. Jacek Wiślicki Katedra Informatyki Stosowanej

Dodanie nowej formy do projektu polega na:

KATEGORIA OBSZAR WIEDZY

CorelDRAW. 1. Rysunek rastrowy a wektorowy. 2. Opis okna programu

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Jak uzyskać efekt 3D na zdjęciach z wykorzystaniem programu InkScape

Ćwiczenie nr 10 Style wydruku, wydruk

Temat: Tekstury uŝytkownika

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Autokształtów Autokształt AUTOKSZTAŁTY Wstaw Obraz Autokształty Autokształty GDYNIA 2009

Komputery I (2) Panel sterowania:

Podręcznik użytkownika Obieg dokumentów

WAŻNE! colour.me Google Fonts tutaj

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

czyli Arkuszy / Układów na podstawie modelu

Kancelaria Prawna.WEB - POMOC

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

ROZSZERZANIE MOŻLIWOŚCI...

Wstęp do GIMP wycinanie obiektu z obrazka, projekt napisu. Rozpoczynamy prace w GIMP-e

TEMAT : KLASY DZIEDZICZENIE

Włączanie/wyłączanie paska menu

Instrukcja połączenia z programem Compas LAN i import konfiguracji

RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D

Instrukcja użytkownika. Aplikacja dla Comarch Optima

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

7. Dynamiczne generowanie grafiki

Podręcznik użytkownika programu. Ceremonia 3.1

I. Interfejs użytkownika.

Dodawanie grafiki i obiektów

1. Przypisy, indeks i spisy.

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Laboratorium 8 ( Android -pierwsza aplikacja)

Adobe Illustrator - projektowanie grafiki wektorowej

Ćwiczenie nr 9 Style wydruku, wydruk

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Ćwiczenia z systemu operacyjnego WINDOWS

Photoshop. Tworzenie tekstu

Kadry Optivum, Płace Optivum

16) Wprowadzenie do raportowania Rave

Kurs walut. Specyfikacja projektu. Marek Zając

Ćwiczenie 5 Animacja tekstu

Laboratorium Systemów Operacyjnych

Tworzenie prezentacji w MS PowerPoint

KATEGORIA OBSZAR WIEDZY

BAZY DANYCH Formularze i raporty

Biblioteka Windows Forms

Programowanie obiektowe

Notepad++ / PuTTY. Interaktywne środowisko programowania w języku ForthLogic. Wersja dokumentu P.1. Wersja dokumentu NP1.

EDYCJA TEKSTU MS WORDPAD

Opis szybkiego uruchomienia programu APBSoft

Ćwiczenie 25 Działania matematyczne we Flashu

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0

ROZKŁADY MATERIAŁU PRZEDMIOT ELEMENTY INFORMATYKI KLASA IV, V I VI.

Program V-SIM tworzenie plików video z przebiegu symulacji

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Instrukcja użytkownika. Aplikacja dla WF-Mag

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Możliwości programu Power Point

4. Rysowanie krzywych

Transkrypt:

Tworzenie grafiki GDI

GDI Graphical Device Interface standard API Windows przeznaczony do reprezentowania obiektów graficznych i przesyłania ich do urządzeń wyjściowych jak monitory lub drukarki. Istnieje praktycznie od początku Windows.

GDI Program dla Windows nie komunikuje się bezpośrednio z urządzeniami wyjściowymi, np. kartą graficzną. Program korzysta z API, które umożliwia tworzenie wyjścia i przesłanie go do dowolnego urządzenia lub strumienia (pamięć, plik). Windows, poprzez sterowniki, generuje obraz na urządzeniu zewnętrznym.

GDI+ W Windows XP i Windows 2003 Server zaimplementowano nową wersję GDI. Jest instalowana jako dodatek do starszych wersji Windows (>95). Więcej funkcji i rodzajów obiektów graficznych. API jest zorientowane obiektowo.

GDI+ Trzy podstawowe elementy GDI+ to: Grafika wektorowa 2D, Grafika rastrowa przetwarzanie obrazów, Typografia.

GDI+ i.net Wszystkie klasy związane z API GDI+ są obudowane klasami znajdującymi się w przestrzeni nazw: System.Drawing W szczególności: System.Drawing.Drawing2D, System.Drawing.Imaging, System.Drawing.Text.

GDI+ i.net Rysowanie zawsze odbywa się za pomocą obiektu klasy Graphics. Każdy widoczny komponent ma skojarzony ze sobą taki obiekt. Na potrzeby rysowanie obiekt można uzyskać korzystając z metody CreateGraphics. Można go też otrzymać poprzez obsługę zdarzenia Paint.

Obiekt Graphics Należy zwracać uwagę, dla jakiego obiektu uzyskaliśmy obiekt Graphics!

Struktura Color. Kolory Stałe dla 128 kolorów, np. Color.Green. Możliwość zdefiniowania dowolnego koloru ze składowych (A), R, G, B: Metody GetHue, GetSaturation, GetBrightness konwertujące kolor do przestrzeni HSB. Typ wyliczeniowy KnownColor zawierający też kolory systemowe, np. KnownColor.ActiveBorder

Kolory predefiniowane

Kolory systemowe

Linie i wypełnienia Do rysowania linii służy obiekt klasy Pen. Najważniejsze właściwości klasy Pen: grubość, kolor. Do rysowania wypełnień, np. figur, służy obiekt klasy Brush. Klasa Brush jest abstrakcyjna!!! Klasa Pen może korzystać z klasy Brush.

Pióra Pióro może mieć ustawione różne zakończenia linii poprzez właściwości StartCap i EndCap o wartościach z typu wyliczeniowego LineCap.

Pióra Pióro może też mieć zdefiniowany styl linii we właściwości DashStyle z typu DashStyle.

Pióra własne Pióro może mieć zdefiniowany w postaci tablicy kształt.

Linie i wypełnienia Można korzystać z listy predefiniowanych piór o grubości 1, np. Pens.Blue. Podobnie jest dla klasy Brush, np. Brushes.Chocolate. Specjalizacje klasy Brush: SolidBrush równy kolor, HatchBrush wzorek, LinearGradientBrush pędzel gradientowy, PathGradientBrush pędzel gradientowy dla ścieżek, TextureBrush pędzel teksturowy

Pędzle typu Hatch

Pędzel typu Hatch

Pędzle teksturowe

Jednostki Domyślną jednostką w trakcie rysowania są piksele. Można zmienić jednostkę na: Display 1/75 cala, Document 1/300 cala, Inch cal, Milimeter, Pixel, Point 1/72 cala, World podobne do piksela, lepiej nie używać.

DrawArc DrawBezier DrawBeziers DrawClosedCurve* DrawCurve DrawEllipse* DrawIcon DrawImage Rysowanie Klasa Graphics ma dwa rodzaje metod służących do rysowania: metody typu Draw i Fill. DrawLine DrawPath* DrawPie* DrawPolygon* DrawRectangle* DrawRectangles* DrawString FillRegion *mają odpowiedniki typu Fill

Kolory

Jednostki cd.

Punkty, rozmiary, prostokąty Punkt na płaszczyźnie jest reprezentowany przez klasy: Point (składowe X i Y), PointF (liczby zmiennoprzecinkowe). Rozmiary podobnie: Size (składowe Width i Height), SizeF. I prostokąty Rectangle, RectangleF.

Prostokąty Prostokąty są często używane do wyznaczania różnych figur, np. elips i okręgów. Zawierają metody przydatne przy sprawdzaniu zawierania w obszarze lub nakładania obszarów: Contains(), Intersect(), IntersectWith() I przekształcaniu: Inflate(), Offset().

Rysowanie Należy pamiętać, że większość metod służących do rysowania jest przeciążonych, tak aby np. mogły korzystać z różnych sposobów podawanie rozmiarów.

Czcionki i tekst Podstawową klasą jest klasa Font reprezentująca czcionkę. Klasa FontFamily odpowiada rodzinie czcionek określonej przez nazwę. Do rysowania tekstu służy metoda DrawString klasy Graphics (wiele wersji).

Wyrównanie tekstu Metoda DrawString może rozmieszczać tekst w zadanym obszarze. Można stosować wyrównywanie tekstu.

Rozmiar tekstu Gdy nie wiemy ile miejsca zajmie tekst możemy to obliczyć za pomocą metody MeasureString klasy Graphics.

Przekształcenia Dostępne są trzy rodzaje przekształceń: Skalowanie ScaleTransform Przesunięcie TranslateTransform Obrót RotateTransform Każdy obiekt narysowany po zdefiniowaniu przekształcenia będzie przekształcony. Przekształcenia się kumulują.

Tekst pod kątem

Tekst przekształcony

Ścieżki Ścieżki (GraphicsPath) łączą wiele kształtów prostych w jeden obiekt. Klasa GraphicsPath ma metody odpowiadające metodom Draw klasy Graphics i zaczynające się od Add:

Stosowanie maski Aby ograniczyć obszar, na którym rysujemy można stosować maskę (Clipping). Służy do tego metoda SetClip klasy Graphics. Za maskę może służyć: Cały obszar (obiekt klasy Graphics) Prostokąt (Rectangle) Ścieżka (GraphicsPath) Region (Region)

Maska

Rysowanie obrazów Do rysowania obrazów służy metoda DrawImage, która ma kilka wersji. Rysuje obraz w podanym punkcie Rysuje obraz w prostokącie Rysuje obraz w równoległoboku

Własności obrazów Plik graficzny może w sobie zawierać wiele dodatkowych informacji np. dane EXIF. Dostęp do nich można uzyskać poprzez kolekcję PropertyItems klasy Image. Niestety rodzaj informacji określany jest przez liczbę i konieczne jest skorzystanie ze słownika. Mogą one też być binarne, tekstowe, itp.

Własności obrazów

Formaty plików Obrazy można zapisywać w różnych formatach. Format wybiera się z typu wyliczeniowego ImageFormat.

Kompresja Dla wybranego formatu można ustawiać parametry kompresora.

Drukowanie Drukowanie nie różni się wiele od rysowania na ekranie. Nadal korzystamy z klasy Graphics, tylko jest ona skojarzona z drukarką. Drukowanie odbywa się przy wykorzystaniu klasy PrintDocument. Klasa ta ma trzy ważne zdarzenia: BeginPrint EndPrint PrintPage

Drukowanie W zdarzeniu PrintPage umieszcza się drukowanie pojedynczej strony. Jeżeli stron jest więcej to należy odpowiednio obsłużyć komunikat i nastąpi ponowne uruchomienie tego zdarzenia.

Drukowanie

Właściwości drukowania Ustawienia dotyczące drukarki i drukowania dostępne są jako obiekty klas PrinterSettings i PageSettings. Do ustawiania opcji można wykorzystać komponent PageSetupDialog.

Tworzenie własnych kontrolek

Własne kontrolki Na platformie.net można tworzyć własne kontrolki Muszą one dziedziczyć pośrednio po klasie Control Mogą być elementem projektu (Assembly)lub znajdować się w osobnej bibliotece DLL

Rodzaje nowych kontrolek Kontrolki będące rozszerzeniem już istniejących, Kontrolki złożone z innych kontrolek, Kontrolki tworzone od podstaw.

Tworzenie biblioteki kontrolek

Pusta kontrolka

Pusta kontrolka Domyślnie kontrolka dziedziczy po klasie UserControl

Rozszerzenie funkcjonalności Na przykładzie TextBox a ValidatedTextBox: sprawdza poprawność np. n-ru PESEL, zmienia kolor, gdy jest aktywny uniemożliwia wpisywanie głupot

Dziedziczenie Dziedziczymy po istniejącej kontrolce - TextBox Zmianie ulega widok w projektancie

FocusColor Dodajemy pole i właściwość FocusColor Dodajemy obsługę zdarzeń Enter i Leave

Odrzucanie znaków W przypadku wpisywania n-ru PESEL chcemy mieć tylko cyfry

Walidacja danych Sprawdzanie poprawności numeru PESEL

Komunikat Aby wyświetlić informację o błędzie możemy dodać do kontrolki element ErrorProvider i obsługę zdarzenia Validate

Kontrolka złożona Dzień liturgiczny: kontrolka kalendarz etykietka

Kod w VB

Kontrolka złożona FilterBox podobny jak w MacOS X Ponownie dziedziczymy po UserControl Dodajemy zwykły TextBox

Styl zachowania W konstruktorze ustawiamy style zachowania kontrolki A potem dodajemy metody wiążące wygląd kontrolki z TextBox em

Rysowanie kontrolki Kontrolkę rysujemy przeciążając metodę OnPaint

Rysowanie kontrolki

Rysowanie kontrolki

Efekt rysowania Rysowanie przezroczystych kontrolek lub kontrolek o nietypowym kształcie nie jest proste! Ustawianie koloru na Transparent nic nie da! Windows zakłada, że kontrolka ma kształt prostokątny i w całym tym obszarze jest ona odpowiedzialna za narysowanie się.

Region Musimy poinformować Windows, że kontrolka ma nietypowy kształt

Zdarzenia Taka kontrolka powinna informować o zmianie swojej zawartości Definiujemy argumenty zdarzenia zawierające tekst

Generowanie zdarzenia Wciskanie klawiszy powoduje wygenerowanie zdarzenia z opóźnieniem (Timer)

Kontrolka własna ProgressIndicator - podobnie jak w MacOS X Znowu dziedziczymy po UserControl

Pola i właściwości

Konstruktor

Rysowanie

Właściwości kontrolki Nowe właściwości kontrolki domyślnie trafiają do kategorii Misc Możemy tym sterować za pomocą atrybutów

Atrybuty kontrolki Sama kontrolka też może mieć atrybuty

Designer Zachowanie kontrolki w trakcie projektowania można kontrolować Konieczne jest utworzenie klasy dziedziczącej po klasie ControlDesigner Klasa ta jest potem kojarzona z kontrolką

ControlDesigner Trzeba dodać referencję na System.Design

Usunięte właściwości

Verbs Właściwości pojawiające się w menu kontekstowym

Dodawanie komponentów Chcąc dodać nowe komponenty klikamy prawym klawiszem na pasku kompenentów

Dodawanie komponentów Jeżeli komponent nie jest zarejestrowany w systemie można go poszukać korzystając z przycisku Browse.

Dodawanie komponentów Dodawać można także kontrolki ActiveX (OCX)

Dodawanie komponentów Dla kontrolek typu COM (ActiveX) tworzone są pliki opisujące ich interfejs w postaci plików DLL, których nazwy zaczynają się od Interop.. Przykład dla Excela i IE

Dystrybucja komponentów Użytkownikowi końcowemu trzeba dostarczyć z programem wszystkie wykorzystywane pliki DLL. Najlepiej przechowywać je w katalogu programu, ewentualnie w katalogu System32. Komponenty można dodać do globalnego repozytorium, tak aby były widoczne dla innych aplikacji.