Graficzny składnik Windows Pośredniczy między aplikacją, a sterownikiem urządzenia Logiczne obiekty tworzone przez aplikację są urzeczywistniane w

Podobne dokumenty
Interfejs graficzny w systemie Windows (GDI - Graphics Device Interface)

mgr inż. Tomasz Jaworski Klasy graficzne GDI 1. Interfejs urządzeń graficznych (GDI) 2. Kontekst urządzenia

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

Podstawy programowania w języku C dla środowiska Windows

Podstawy programowania w środowisku Windows. Oto identyfikatory najczęściej obsługiwanych meldunków (przedrostek WM to skrót od Windows message):

Programowanie na poziomie sprzętu. Programowanie w Windows API

Formaty plików graficznych - wprowadzenie

GDI+. NOWE MOŻLIWOŚCI PODSYSTEMU GRAFICZNEGO MICROSOFT WINDOWS

Szybkie tworzenie grafiki w GcIde

Do obsługi plików BMP należy stworzyć klasę przechowującą zawartość obrazu i udostępniającą następujące metody:

Podstawy Processingu. Diana Domańska. Uniwersytet Śląski

Ćwiczenie 2 Warstwy i kształty podstawowe

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

Jeden obraz jest wart tysiąca słów... Tomasz Dzieniak Toruń, 21 grudnia 2011 r.

Graficzny format Windows Metafile

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.

Photoshop. Tworzenie tekstu

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

SYLABUS ECCC MOD U Ł : C S M2 GR A F I K A KO M P U T E R O W A PO Z I O M: PO D S T A W O W Y (A)

Cechy systemu Windows

Ćwiczenie 1 Automatyczna animacja ruchu

WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

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

7. Dynamiczne generowanie grafiki

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

Wykład VII PASCAL - grafika;

8. Dynamiczne generowanie grafiki, cz. 2

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej

Moduł graph w Pascalu

AutoCAD LT praca na obiektach rastrowych i nakładanie barw z palety RGB na rysunki.

WSTĘP; NARZĘDZIA DO RYSOWANIA

Program graficzny MS Paint.

Podstawy Informatyki Wykład V

Microsoft Small Basic

Obsługa programu Paint materiały szkoleniowe

CorelDraw - Edytor grafiki wektorowej

ToonDoo Maker tworzenie pojedynczej sceny komiksowej

R o g e r A c c e s s C o n t r o l S y s t e m 5

Adobe Illustrator - projektowanie grafiki wektorowej

CorelDRAW. wprowadzenie

CorelDraw - obiekty tekstowe

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

PAMIĘĆ OPERACYJNA...107

HARMONOGRAM SZKOLENIA ECDL moduł S4 - edycja obrazów

Adobe InDesign lab. 3 Jacek Wiślicki, Paweł Kośla

HARMONOGRAM SZKOLENIA ECDL moduł S4 - edycja obrazów

Adobe InDesign lab. 3 Jacek Wiślicki,

Następnie zdefiniujemy utworzony szkic jako blok, wybieramy zatem jak poniżej

GIMP Grafika rastrowa (Ćwiczenia cz. 2)

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

1 Zrozumieć Flasha... 1 Co można zrobić za pomocą Flasha?... 2 Tworzenie obrazków do strony 3 Animowanie witryny 4 Tworzenie filmów

Prezentacje multimedialne. MS PowerPoint 2003

Zadanie 1 Zamiana kolorów maskowanie

JAK ZAPROJEKTOWAĆ WYGLĄD STRONY INTERNETOWEJ W KREATORZE CLICK WEB?

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Inkscape. Menu. 1 SVG (ang. Scalable Vector Graphics) uniwersalny format dwuwymiarowej, statycznej i

Zajęcia prowadzi trener posiadający certyfikat Adobe Expert in Photoshop oraz Adobe Expert in Illustrator.

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Kod źródłowy programu: program Grafika1; uses crt, graph; (1) var sterownik, tryb:smallint; (2)

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Ikona aplikacji. Ikona aplikacji to grafika wyświetlająca się na ekranie ipada. Służy do uruchomienia aplikacji Salesbook.

Przetwarzanie grafiki rastrowej na wektorową

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

Obsługa programu Paint. mgr Katarzyna Paliwoda

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

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

Corel Draw, Adobe Illustrator grafika wektorowa

Ćwiczenie nr 10 Style wydruku, wydruk

ECDL/ICDL Edycja obrazów Moduł S4 Sylabus - wersja 2.0

ZAPOZNANIE SIĘ Z PODSTAWOWYMI SPOSOBAMI

Przetwarzanie obrazów

Rysowanie punktów na powierzchni graficznej

Zajęcia komputerowe klasy I-III- wymagania

3.4. Opis konfiguracji layoutów.

GerbView. 24 stycznia 2017

Grafika komputerowa. Dla DSI II

PROSTY PROGRAM DO MALOWANIA

FORMATY PLIKÓW GRAFICZNYCH

1. Opis okna podstawowego programu TPrezenter.

Spis treści. Adobe Photoshop lab. 2 Jacek Wiślicki,

Agencja Restrukturyzacji i Modernizacji Rolnictwa

Kreślenie drukowanie plotowanie rysunków

Obsługa tablicy interaktywnej

Przewodnik po soczewkach

Inkscape. Narzędzia informatyki

Wykład A1. AutoCAD Dr inż. Jarosław Bydłosz

WAŻNE! colour.me Google Fonts tutaj

ECDL/ICDL CAD 2D Moduł S8 Sylabus - wersja 1.5

Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager

Opis Edytora postaci Logomocji

Operator DTP - projektowanie i skład publikacji

4.6 OpenOffice Draw tworzenie ilustracji

4. Rysowanie krzywych

Obsługa mapy przy użyciu narzędzi nawigacji

KATEGORIA OBSZAR WIEDZY

CorelDraw PROGRAM SZKOLENIA. Terminy szkolenia

Narzędzia programu Paint

Wstawianie nowej strony

POMOC / INSTRUKCJA OBSŁUGI

Transkrypt:

GDI - Graphics Device Interface Graficzny składnik Windows Pośredniczy między aplikacją, a sterownikiem urządzenia Logiczne obiekty tworzone przez aplikację są urzeczywistniane w chwili wyboru na DC Podstawowe funkcje graficzne wykorzystują możliwości urządzenia lub symuluje je GDI Aplikacja wykorzystuje współrzędne logiczne, urządzenie wykorzystuje współrzędne rzeczywiste

Rysowanie Współrzędne na ekranie w pikselach (0,0) w lewym górnym rogu; x rośnie w prawo, y w dół MapWindowPoints() Regiony update visible clipping Bounding rectangle - SetBoundsRect(), GetBoundsRect() Update lock - LockWindowUpdate() Rysowanie ikony [do NT 3.51]

Rysowanie w oknie Tło okna WM_ERASEBKGND WNDCLASSEX.hbrBackground Obszar klienta (client area) WM_PAINT - BeginPaint(), EndPaint() GetDC(), GetDCEx(), ReleaseDC() Pozostały obszar okna (nonclient area) w większości przypadków obsługiwany przez system WM_NCPAINT, WM_NCACTIVATE GetWindowDC(), GetDCEx(), ReleaseDC()

WM_PAINT BeginPaint() pobranie DC z ustawionym regionem obcinania WM_ERASEBKGND ustawia update region dla okna na NULL (wywoływać tylko w obsłudze komunikatu WM_PAINT) EndPaint() Update region InvalidateRect(), InvalidateRgn() ValidateRect(), ValidateRgn() GetUpdateRect(), GetUpdateRgn(), ExcludeUpdateRgn() Natychmiastowe odrysowanie okna UpdateWindow(), RedrawWindow()

Obiekty GDI Pióro, pędzel, font, bitmapa, paleta, region Tworzenie, niszczenie Create...(), np. CreatePen(), CreateSolidBrush(), CreateFont () wszystkie stworzone obiekty muszą być zniszczone DeleteObject() SelectObject() urzeczywistnienie obiektu stosownie do możliwości DC nie można niszczyć obiektu wybranego jako aktualny Stock objects GetStockObject()

Wykorzystanie obiektów GDI hnewpen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0)); if (hnewpen) holdpen = SelectObject(hDC, hnewpen); else holdpen = NULL; // no selection. // all drawing operations. // uses the new pen if (holdpen) SelectObject(hDC, holdpen); // deselect hnewpen if (hnewpen) DeleteObject(hDC, hnewpen); // delete the pen if created

Kolory Wartości COLORREF RGB GetRValue(), GetGValue(), GetBValue() Przybliżanie kolorów GetNearestColor() Mieszanie pióra i wypełnienia z kolorami na ekranie SetROP2(), GetROP2() Palety (użyteczne, gdy tylko 256 kolorów może być użytych) CreatePalette(), DeleteObject() SelectPalette(), RealizePalette(), UnrealizeObject(), ResizePalette() GetPaletteEntries(), GetNearestPaletteIndex() GetSystemPaletteEntries(), GetSystemPaletteUse()

Kontekst urządzenia (device context) Aktualne obiekty SelectObject(), GetCurrentObject(), GetObject() Tryby: tło - SetBkMode(), GetBkMode() rysowanie - SetROP2(), GetROP2() mapowanie - SetMapMode(), GetMapMode() wypełnianie wielokąta - SetPolyFillMode(), GetPolyFillMode() rozciąganie - SetStretchBltMode(), GetStretchBltMode() Typy kontekstów: ekranu - GetDC(), GetWindowDC(), BeginPaint() drukarki - CreateDC() pamięciowy - CreateCompatibleDC() informacyjny - CreateIC()

Obcinanie Ustawienie SelectClipRgn(), ExtSelectClipRgn(), SelectClipPath() Sprawdzenie widoczności PtVisible(), RectVisible() Modyfikacje regionu obcinania OffsetClipRgn(), ExcludeClipRect(), IntersectClipRect()

Pióra Kosmetyczne grubość, styl, kolor zawsze ustalonej grubości w pikselach - bez skalowania CreatePen(), CreatePenIndirect(), ExtCreatePen(), GetStockObject() Geometryczne grubość, styl, kolor, wzór, kreskowanie, styl zakończenia i łączenia linii grubość we współrzędnych logicznych - skalowalne ExtCreatePen()

Linie i krzywe Rysowane aktualnym piórem Linie MoveToEx(), LineTo() PolylineTo(), Polyline(), PolyPolyline() Krzywe Arc(), SetArcDirection(), GetArcDirection() PolyBezier() Połączenie linii i krzywych AngleArc(), PolyDraw()

Pędzle Typy: pełny (solid) - CreateSolidBrush() kreskowany (hatch) - CreateHatchBrush() ze wzorem (pattern) - CreatePatternBrush(), CreateDIBPatternBrushPt() Zawsze dostępne w systemie GetStockObject() Wzory PatBlt() współrzędne wzoru: SetBrushOrgEx(), GetBrushOrgEx()

Wypełnione kształty Kontur rysowany aktualnym piórem Wypełnienie rysowane aktualnym pędzlem Prostokąty Rectangle(), RoundRect() FillRect(), FrameRect(), InvertRect() Inne kształty Ellipse() Chord() Pie() Polygon()

Fonty Elementy typeface, styl, rozmiar Rodziny fontów decorative, dontcare, modern, roman, script, swiss Typy fontów rastrowe, wektorowe, TrueType, OpenType Zbiory znaków w foncie Windows, Unicode, OEM, symbol

Użycie fontów Tworzenie CreateFont(), CreateFontIndirect() ChooseFont() Wybór SelectObject() Wyliczenia EnumFonts(), EnumFontFamiliesEx() Informacje GetFontData(), GetOutlineTextMetrics(), GetGlyphOutline() Instalacja AddFontResource(), AddFontResourceEx() RemoveFontResource() WM_FONTCHANGE

Teksty Formatowanie SetBkColor(), SetBkMode(), SetTextColor() SetTextAlign(), SetTextCharacterExtra() SetTextJustification() Rozmiar GetTextExtendPoint32(), GetTabbedTextExtend() GetCharWidth32(), GetCharWidthFloat() GetCharABCWidths(), GetCharABCWidthsFloat() GetTextMetrics(), GetOutlineTextMetrics() Rysowanie DrawText(), DrawTextEx() TextOut(), ExtTextOut(), PolyTextOut(), TabbedTextOut()

Rozmiar fontu

Kontur litery http://support.microsoft.com/default.aspx?scid=kb;en-us;243285 http://my.execpc.com/~dg/tutorial/glyph/glyph.html

Prostokąty RECT, *PRECT Operacje SetRect() SetRectEmpty(), IsRectEmpty() EqualRect(), CopyRect() InflateRect(), OffsetRect() PtInRect() IntersectRect(), UnionRect()

Regiony HRGN Tworzenie CreateRectRgn(), CreateRoundRectRgn(), CreateEllipticRgn(), CreatePolygonRgn() Wybór SelectObject Wypełnianie FillRgn() SetPolyFillMode(), GetPolyFillMode() Rysowanie PaintRgn()

Operacje na regionach Łączenie CombineRgn() Inwersja InvertRgn() Przesuwanie OffsetRgn() Sprawdzanie przynależności punktu PtInRegion() Opisany prostokąt GetRgnBox()

Ścieżki Tworzenie 1. BeginPath() 2. rysowanie GDI (nie wszystkie funkcje są obsługiwane) 3. EndPath() Obrysowanie StrokePath(), StrokeAndFillPath() Wypełnienie FillPath(), SetPolyFillMode(), GetPolyFillMode() Obcinanie SelectClipPath() Tworzenie regionu PathToRegion()

Metapliki Tworzenie 1. CreateEnhMetaFile() 2. rysowanie GDI 3. CloseEnhMetaFile() Usunięcie DeleteEnhMetaFile() Operacje PlayEnhMetaFile() CopyEnhMetaFile() EnumEnhMetaFile() GetEnhMetaFileHeader(), GetEnhMetaFileDescription()

Bitmapy Tworzenie CreateBitmap(), CreateBitmapIndirect(), CreateCompatibleBitmap() DeleteObject() Obroty PlgBlt() [NT] Skalowanie StretchBlt(), SetStretchBltMode() Użycie maski MaskBlt() [NT] Piksele GetPixel(), SetPixel()

Efekty graficzne bitmap Pędzle z bitmap PatBlt() FloodFill() Przezroczystość AlphaBlend() [98/2000] TransparentBlt() [98/2000] Cieniowanie GradientFill() [98/2000]

Typy bitmap Zależne od urządzenia zawierają tablicę kolorów BITMAPINFO, BITMAPINFOHEADER, RGBQUAD GetDeviceCaps() Niezależne od urządzenia - DIB BITMAP - bez tablicy kolorów Pliki.BMP ręczny zapis oparty na strukturach BITMAPINFO, BITMAPINFOHEADER, RGBQUAD LoadBitmap() - z zasobów LoadImage() - z zasobów lub z pliku

Zapobieganie mruganiu Wyłączenie odrysowywania tła WM_ERASEBKGND Pamięciowy kontekst urządzenia HDC hmemdc = CreateCompatibleDC(hDC); HBITMAP hbmp = CreateCompatibleBitmap(hDC, nwidth, nheight); HBITMAP holdbmp = (HBITMAP)SelectObject( hmemdc, hbmp); // rysowanie na hmemdc BitBlt(hDC, 0, 0, nwidth, nheight, hmemdc, 0, 0, SRCCOPY); SelectObject(hMemDC, holdbmp); DeleteObject(hBmp); DeleteDC(hMemDC);

Nakładanie bitmap //HBITMAP hbmp = (HBITMAP)LoadImage(NULL, filepath, // IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); HBITMAP hbmp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_SARG_MOVE_01)); BITMAP bmpinfo; GetObject(hBmp, sizeof(bitmap), &bmpinfo); HDC htmpdc = CreateCompatibleDC(hdc); HBITMAP holdbmp = (HBITMAP)SelectObject( htmpdc, hbmp); COLORREF transparentcolor = GetPixel(hTmpDC, 0, 0); TransparentBlt(hdc, 0, 0, bmpinfo.bmwidth, bmpinfo.bmheight, htmpdc, 0, 0, bmpinfo.bmwidth, bmpinfo.bmheight, transparentcolor); SelectObject(hTmpDC, holdbmp); DeleteDC(hTmpDC);

Układ współrzędnych Transformacje SetWorldTransform() [NT3.1] Tryby mapowania SetMapMode(), GetMapMode() MM_TEXT, MM_TWIPS MM_ANISOTROPIC, MM_ISOTROPIC, MM_HIENGLISH, MM_LOENGLISH, MM_HIMETRIC, MM_LOMETRIC Własne ustawienia współrzędnych okna SetWindowOrgEx(), SetWindowExtEx() SetViewportOrgEx(), SetViewportExtEx() Punkty urządzenia <--> punkty logiczne DPtoLP(), LPtoDP()