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



Podobne dokumenty
Technologie Informacyjne

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Spis treści. 1. Znak Konstrukcja symbolu Budowa znaku Kolorystyka wersja podstawowa Kolorystyka wersja czarno-biała...

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

Jak przygotować projekt

46 Korzystanie z wyświetlacza. System Microsoft Windows XP. System Microsoft Windows Vista

Jak spersonalizować wygląd bloga?

INSTRUKCJA WebPTB 1.0

Budowa systemów komputerowych

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Konfiguracja Wyszukiwarki

ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Harmonogramowanie projektów Zarządzanie czasem

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Charakterystyka systemów plików

Elementy typografii. Technologia Informacyjna Lekcja 22

PROJEKTOWANIE PROCESÓW PRODUKCYJNYCH

tel/fax lub NIP Regon

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Konfiguracja programu Outlook 2007 do pracy z nowym serwerem poczty (Exchange)

PROGRAM ZAJĘĆ INFORMATYCZNYCH NIE TYLKO GG REALIZOWANYCH W RAMACH PROJEKTU RADOŚĆ UCZENIA SIĘ

ROZDZIAŁ 1 Instrukcja obsługi GRAND HAND VIEW III

Microsoft Management Console

TYTUŁ DZIAŁU 01 OX SPIS TREŚCI LOGO 3 SYMBOLIKA MARKI 15 WERSJA PODSTAWOWA 3 WERSJE PODSTAWOWE: POZIOMA I PIONOWA 4 SIATKA MODUŁOWA 5

INSTRUKCJA OBSŁUGI MC-2810 CYFROWY SYSTEM GŁOŚNIKOWY 5.1 KANAŁÓW DO KINA DOMOWEGO

Zamawiający udziela odpowiedzi na pytania postawione przez Wykonawców:

VinCent Office. Moduł Drukarki Fiskalnej

Metody opracowywania dokumentów wielostronicowych. Technologia Informacyjna Lekcja 28

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Przewodnik AirPrint. Ten dokument obowiązuje dla modeli atramentowych. Wersja A POL

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 6, strona 1. Format JPEG

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Komunikat dla osób rozliczających umowy w sprawie nowego sposobu rozliczania umów w związku z likwidacją II fazy rozliczeń.

2.Prawo zachowania masy

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

KSIĘGA ZNAKU TOTORU S.C.

INTENSE BUSINESS INTELLIGENCE PLATFORM

Konfiguracja historii plików

FOTOMETRYCZNE PRAWO ODLEGŁOŚCI (O9)

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

Specyfikacja techniczna banerów Flash

Cel i zakres ćwiczenia

Podatek przemysłowy (lokalny podatek od działalności usługowowytwórczej) :02:07

Zmiany w programie C GEO v. 6.5

Wtedy wystarczy wybrać właściwego Taga z listy.

Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

Aktualizacja CSP do wersji v7.2. Sierpień 2014

ST SPECYFIKACJA TECHNICZNA ROBOTY GEODEZYJNE. Specyfikacje techniczne ST Roboty geodezyjne

Grafika komputerowa. Dla DSI II

AKADEMIA MORSKA W SZCZECINIE

Poznań, 03 lutego 2015 r. DO-III

Od redakcji. Symbolem oznaczono zadania wykraczające poza zakres materiału omówionego w podręczniku Fizyka z plusem cz. 2.

Projekt z dnia 2 listopada 2015 r. z dnia r.

Grafika komputerowa. Informatyka Zakres rozszerzony

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Wyposażenie multimedialne

Instrukcja użytkowania DRIVER. Programator z przewodem sterowniczym. DRIVER 610 lub lub 2 strefy DRIVER

Ramki tekstowe w programie Scribus

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Ćwiczenie 7 Liczniki binarne i binarne systemy liczbowe.

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

PODRĘCZNIK UŻYTKOWNIKA

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

TYTUŁ IPS P przyrząd do badania imisji wg nowej metody pomiaru

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

znaczeniu określa się zwykle graficzne kształtowanie tekstu za pomocą dostęp-

Tester pilotów 315/433/868 MHz MHz

ZAJĘCIA KOMPUTEROWE Kryteria ocen klasa IV

G PROGRAMMING. Part #4

REGULAMIN FINANSOWANIA ZE ŚRODKÓW FUNDUSZU PRACY KOSZTÓW STUDIÓW PODYPLOMOWYCH

Kancelaris - Zmiany w wersji 2.50

SpedCust 5 instrukcja instalacji

Posiadane punkty lojalnościowe można również wykorzystać na opłacenie kosztów przesyłki.

Obowiązki Beneficjentów POIiŚ w zakresie działań informacyjnych i promocyjnych

Stal EXPonent. Program służy do obliczania nośności przekrojów stalowych.

6. Metody i techniki pracy: podające pogadanka, programowa ( przy użyciu komputera i multimediów), praktyczna.

BCS Manager Instrukcja Obsługi

Instrukcja wgrywania synoptyki pola (wersja modelu danych do 634)

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA

Statystyczna analiza danych w programie STATISTICA. Dariusz Gozdowski. Katedra Doświadczalnictwa i Bioinformatyki Wydział Rolnictwa i Biologii SGGW

Przepisy ogólne. KIERUNEK: SCENOGRAFIA studia pierwszego stopnia (licencjackie) wieczorowe

Nowe funkcjonalności

Czy zdążyłbyś w czasie, w jakim potrzebuje światło słoneczne, aby dotrzeć do Saturna, oglądnąć polski hit kinowy: Nad życie Anny Pluteckiej-Mesjasz?

Dobór nastaw PID regulatorów LB-760A i LB-762

CitiDirect EB - Mobile

Komputer i urządzenia z nim współpracujące

STRONA GŁÓWNA SPIS TREŚCI. Zarządzanie zawartością stron... 2 Tworzenie nowej strony... 4 Zakładka... 4 Prawa kolumna... 9

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Ogólna charakterystyka kontraktów terminowych

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel

9. Dynamiczne generowanie grafiki, cz. 3

Bioinformatyka Laboratorium, 30h. Michał Bereta

Praca z układem. Omówione zagadnienia. Tworzenie tła

Edycja geometrii w Solid Edge ST

REGULAMIN OKRESOWYCH OCEN PRACOWNIKÓW URZĘDU GMINY LIMANOWA ORAZ KIEROWNIKÓW JEDNOSTEK ORGANIZACYJNYCH GMINY LIMANOWA

Program Google AdSense w Smaker.pl

Transkrypt:

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

Rodzaje grafiki Według tradycyjnego podziału grafiki wyróżnia się dwa rodzaje: grafikę rastrową grafikę wektorową. Różnice pomiędzy nimi polegają na interpretacji obrazu zapisie obrazu (zarówno w pamięci jak i na dysku).

Rodzaje grafiki - Grafika rastrowa Tryb rastrowy jest naturalnym (i czasem jedynym) trybem pracy większości urządzeń graficznych, między innymi takich jak: monitor czy drukarka. Obraz przedstawiany jest w postaci dwuwymiarowej tablicy. Każdy fragment obrazu określany jest przez pewną liczbę informacji - bitów. Stąd nazwa - bitmapa. Najmniejszym elementem obrazka rastrowego jest piksel - najczęściej kwadratowy i zawsze wypełniony tylko jednolitym kolorem. Jednym z podstawowych cech określających obraz jest jego rozdzielczość, czyli liczba pikseli w pionie i poziomie (wymiar wcześniej wspomnianej siatki). Wyższa rozdzielczość oznacza większą liczbę danych opisujących obraz i większy rozmiar pliku.

Rodzaje grafiki - Grafika rastrowa - Kolor piksela i głębia koloru Na subiektywną jakość bitmapy rastrowej wpływa także dokładność odwzorowania rzeczywistych kolorów, ich odcieni i natężenia. Większa jakość odwzorowania jest wprost proporcjonalna do wielkości używanej bitmapy. Najpopularniejsze modele kodowania barw to RGB i CMYK.

Rodzaje grafiki - Grafika rastrowa - Kolor piksela i głębia koloru - RGB Akronim RGB pochodzi od nazw kolorów podstawowych w systemie: czerwonego, zielonego i niebieskiego. Pozostałe barwy powstają poprzez mieszanie powyższych kolorów. Składowe barw podstawowych w kolorze wynikowym nazywa się kanałami - w systemie RGB są więc trzy kanały. Liczba wyświetlanych kolorów zależy od zastosowanej głębi kolorów: 8 - bitowe = 2 8 kolorów, 16 - bitowe = 2 16 kolorów itd.

Rodzaje grafiki - Grafika rastrowa - Kolor piksela i głębia koloru - RGB Przestrzeń barw RGB. Osie współrzędnych odpowiadają wartościom kolorów w poszczególnych kanałach.

Rodzaje grafiki - Grafika rastrowa - Kolor piksela i głębia koloru - RGB Reprezentacja w pamięci komputera - COLORREF (w rzeczywistości - DWORD)

Rodzaje grafiki - Grafika rastrowa - Kolor piksela i głębia koloru - CMY(K) Akronim ponownie pochodzi od barw podstawowych - morskiego, karmazynowego i żółtego (i czarnego). Stworzony głównie z myślą o drukarkach i innych urządzeniach, które swoją twórczość obrazują na papierze. Łączenie barw opiera się nie na łączeniu fal świetlnych (RGB) a na mieszaniu barwników atramentu.

Rodzaje grafiki - Grafika rastrowa - Kolor piksela i głębia koloru - CMY(K) Przestrzeń barw CMY(K). Osie współrzędnych odpowiadają wartościom kolorów w poszczególnych kanałach.

Rodzaje grafiki - Grafika wektorowa W zamian punktowego opisu obrazu (tablicy dwuwymiarowej) stosowany jest opis geometryczny. Ogromną zaletą takiego traktowania opisu obrazu jest możliwość dowolnego skalowania. Najczęstsze zastosowanie: szkice techniczne modelowanie graficzne Najpopularniejszym narzędziem do tworzenia rysunków wektorowych - programy CAD.

Rodzaje grafiki - Grafika trójwymiarowa Jest typem grafiki wektorowej. Stanowi jedyny, sensowny sposób kreowania świata przestrzennego. Polega na tworzeniu trójwymiarowych modeli, na które składają się szeregi trójkątów, quadów bądź innych użytecznych prymitywów. Przykład wymodelowanej przeze mnie sceny na potrzeby zajęć z fizyki w symulacji komputerowej i modelowaniu komputerowym znajduje się na następnym slajdzie.

Krótko o parametrach obrazu - jeszcze raz! Główne parametry obrazu to rozdzielczość głębia kolorów częstotliwość odświeżania

Rozdzielczość - wartość określająca liczbę pikseli w pionie i poziomie, jaką zdolna jest wyświetlić karta graficzna i domyślne urządzenie wyświetlające (projektor, monitor, ekran). przekątna rozdzielczość 14 cali 640 x 480 15 cali 800 x 600 17 cali 1024 x 768 19 cali 1290 x 960 21 cali 1600 x 1200 Najpopularniejsze zestawienia rozdzielczości dla monitorów o proporcji 4:3

Głębia kolorów - określa wierność odwzorowania barw, czyli w najprostszym ujęciu - liczbę dostępnych kolorów. ilość kolorów liczba bitów nazwa trybu uwagi 2 1 monochromatyczny czarno - biały 16 4 16 kolorów oparty na palecie 256 8 256 kolorów stałych barw 65 536 16 High Color kolor zapisany z 16 777 216 24 użyciem RGB 16 777 216 32 True Color j / w z wyrównaniem do czterech bajtów Tryby głębi kolorów obsługiwane przez większość współczesnych monitorów

Częstotliwość odświeżania - określa zdolność przerysowywania całego ekranu w określonej jednostce czasu. Zaleca się stosowanie częstotliwości odświeżania od 60 Hz wzwyż (ogranicza to do minimum zmęczenie wzroku). W celu uproszczenia realizacji odrysowywania obrazu na ekranie stosuje się: synchronizację pionową buforowanie przełączanie stron Najczęstsze problemy: migotanie szarpanie

Podstawy Windows GDI Najwyższa pora przejść do głównego punktu referatu - Windows GDI! Najpierw jednak należy poznać kilka kluczowych zagadnień, których znajomość znacząco uprości posługiwanie się udostępnionym API! Zacznijmy od potoku graficznego!

Podstawy Windows GDI - Potok graficzny W myśl zasady "dziel i rządź" - potok graficzny stanowi kaskadę kolejnych szczebli, jakie pokonuje obraz - poprzez funkcje rysujące, przekształcenia aby ostatecznie pojawić się na ekranie. Jest pewnego rodzaju abstrakcją, która umożliwia niezależność biblioteki od sprzętu.

Tryby grafiki - tryb kompatybilny Stanowi domyślny tryb grafiki. Nazwa związana jest z faktem, iż jest zgodny z 16 - bitowymi wersjami systemu Windows. Ilustracja 16 - bitowego trybu kompatybilnego

Tryby grafiki - tryb zaawansowany Ilustracja trybu zaawansowanego

Płaszczyzna świata Nie jest nieskończona (nie można rysować poza "kartką") Trzeba zmapować układ współrzędnych (określić sposób orientacji w przestrzeni) Mapowanie układu współrzędnych: Precyzuje orientację płaszczyzny (kierunek osi pionowej) Określa jednostki logiczne

stała tryb mapowania rozmiar JL zwrot osi uwagi MM_HIMETRIC metryczny gęsty 0,01 mm przetwarzanie MM_LOMETRIC metryczny luźny 0,1 mm x a MM_HIENGLISH angielski gęsty 0,001 cala y a MM_LOENGLISH angielski luźny 0,01 cala drukowanie MM_TWIPS twips 1/20 PD dowolne MM_ANISOTROPIC anizotropowy ustawienie ustalany dowolny parametrów MM_ISOTROPIC izotropowy dba o proporcje MM_TEXT piksele Jeden piksel x a urządzenia urządzenia y a domyślny Tryby mapowania układu współrzędnych w Windows GDI

Kadr Jeżeli korzysta się z mapowania izotropowego lub anizotropowego należy ustalić jednostkę oraz zwrot układu współrzędnych. Pozycję kadru reguluje się za pomocą metody: BOOL SetWindowOrgEx(HDC hdc, int X, int Y, LPSIZE lppoint); Rozciągłość osi ustawia się za pomocą metody: BOOL SetWindowExtEx(HDC hdc, int nxextent, int nyextent, LPSIZE lpsize);

Płaszczyzna urządzenia Jest przedostatnim etapem potoku graficznego. Na tę płaszczyznę rzutowana jest płaszczyzna strony (świata). Jednostki logiczne są zastępowane jednostkami urządzenia Wziernik - określa miejsce na płaszczyźnie urządzenia, gdzie pojawi się wygenerowany obraz. Metoda odpowiedzialna za przesuwanie wziernika to: BOOL SetViewportOrgEx(HDC hdc, int X, int Y, LPPOINT lppoint);

Kontekst urządzenia Jest to struktura przechowująca informacje na temat urządzenia graficznego. Na rzecz kontekstu można wywoływać funkcje GDI, tworząc w ten sposób obrazy wyświetlane na tym urządzeniu. Kontekst może być związany z konkretnym urządzeniem: monitorem drukarką ploterem planszą rzutnika itp.

Kontekst urządzenia - pobieranie uchwytu Są trzy metody pozyskiwania kontekstu urządzenia: od okna o podczas odrysowywania (WM_PAINT) PAINSTRUCT ps; HDC hdckontekst = BeginPaint(hWnd, &ps); o z obszaru klienta okna HDC hdcobszarklienta = GetDC(hWnd); // ReleaseDC(hWnd, hdcobszarklienta); o całe okno HDC hdcokno = GetWindowDC(hWnd);

Kontekst urządzenia - pobieranie uchwytu Są trzy metody pozyskiwania kontekstu urządzenia: od urządzenia o ekran - umożliwia pobranie kontekstu ekranu (tj.: wszystkiego co widać na płaszczyźnie ekranu; pozwala rysować nawet na innych aplikacjach!) HDC hdcekran = GetDC(NULL); Pora na pierwszy program! o w ogólności można utworzyć kontekst dowolnego urządzenia!

kontekst pamięciowy - to swego rodzaju bufor o Tworzy się go na podstawie istniejącego kontekstu urządzenia! o Aby zacząć z niego korzystać należy utworzyć bitmapę. HBITMAP hbmpbitmapa = CreateCompatibleBitmap(hdcKontekst, nszerokosc, nwysokosc); o Następnie wiążemy stworzoną bitmapę z kontekstem pamięciowym: HBITMAP hbmpstarabitmapa = (HBITMAP) SelectObject(hdcKontekstPamieciowy, hbmpbitmapa);

Atrybuty kontekstu - tryb mapowania Określa wielkość jednostek logicznych (jednostek na płaszczyźnie świata / strony) dla danego kontekstu urządzenia. Domyślne ustawienie - Funkcja ustawiająca atrybut - Funkcja pobierająca atrybut - MM_TEXT SetMapMode() GetMapMode()

Atrybuty kontekstu - kadr Jest to specjalny prostokąt na płaszczyźnie świata, który podczas przekształcenia na płaszczyznę urządzenia jest rzutowany do odpowiadającego mu wziernika. Domyślne ustawienie - (0,0) (1,1) Funkcja ustawiająca atrybut - SetWindowOrgEx() SetWindowExtEx() Funkcja pobierająca atrybut - GetWindowOrgEx() GetWindowExtEx()

Atrybuty kontekstu - wziernik Prostokąt położony na płaszczyźnie urządzenia. Określa, gdzie pojawi się wygenerowany obraz. Domyślne ustawienie - (0,0) (1,1) Funkcja ustawiająca atrybut - SetViewportOrgEx() SetViewportExtEx() Funkcja pobierająca atrybut - GetViewportOrgEx() GetViewportExtEx()

Atrybuty pióra - obiekt pióra Mogą istnieć niezależnie od urządzenia. Jeden kontekst = jedno pióro! Domyślne ustawienie: Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: BLACK_PEN SelectObject() GetCurrentObject()

Atrybuty pióra - aktualna pozycja Jest czymś w rodzaju kursora graficznego. Wiele funkcji rozpoczyna od tego miejsca. Domyślne ustawienie: (0, 0) Funkcje ustawiające atrybut: MoveToEx() LineTo() PolylineTo() Funkcja pobierająca atrybut: GetCurrentPositionEx()

Atrybuty pióra - tryb rysowania Określa w jaki sposób GDI ma reagować na przykrywanie już istniejących pikseli. Standardowo - piksele są zastępowane. Domyślne ustawienie: Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: R2_COPYPEN SetROP2() GetROP2()

Atrybuty pędzla - obiekt pędzla Jeden kontekst = jeden pędzel! Domyślnie pędzel wypełniający jest biały. Domyślne ustawienie: Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: WHITE_BRUSH SelectObject() GetCurrentObject()

Atrybuty pędzla - punkt odniesienia pędzla Stosowany tylko do pędzli, które malują regiony sąsiadującymi kopiami bitmap / deseniami. Domyślne ustawienie: (0, 0) Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: SetBrushOrgEx() GetBrushOrgEx()

Atrybuty bitmap - bitmapa kontekstu urządzenia Każdy kontekst zawsze ma swoją bitmapę. Funkcje rysujące zmieniają piksele właśnie tej bitmapy. Domyślne ustawienie: Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: Monochromatyczna bitmapa 1 1 lub bitmapa o parametrach zależnych od macierzystego urządzenia kontekstu SelectObject() GetCurrentObject()

Atrybuty bitmap - tryb rozciągania Właściwość ta definiuje sposób rozciągania bitmap przy kopiowaniu ich za pomocą funkcji StretchBit(). Domyślne ustawienie: Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: BLACKONWHITE SetStretchBltMode() GetStretchBltMode()

Atrybuty tekstu - kolor tekstu Kolor tekstu jest niezależny od czcionki i jej stylu. Domyślne ustawienie: czarny (RGB(0, 0, 0)) Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: SetTextColor() GetTextColor()

Atrybuty tekstu - kolor tła Parametr określa kolor tła najmniejszego prostokąta okalającego tekst. Jeżeli nie jest pożądany kolor tła należy zmienić tryb graficzny! Domyślne ustawienie: biały (RGB(255, 255, 255)) Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: SetBkColor() GetBkColor()

Atrybuty tekstu - tryb tła Precyzuje, czy tło tekstu ma być rysowane (OPAQUE) czy też nie (TRANSPARENT). Domyślne ustawienie: Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: OPAQUE SetBkMode() GetBkMode()

Atrybuty tekstu - czcionka Określa parametry wyświetlanego tekstu (tj. czcionkę, styl, dekorację). Np.: Verdana, 10 punktów, pogrubiona i kursywa. Domyślne ustawienie: Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: SYSTEM_FONT SelectObject() GetCurrentObject()

Atrybuty tekstu - odstępy pomiędzy znakami Podawany w jednostkach logicznych odstęp pomiędzy pojedynczymi znakami wypisywanego tekstu Domyślne ustawienie: 0 Funkcja ustawiająca atrybut: Funkcja pobierająca atrybut: SetTextCharacterExtra() GetTextCharacterExtra()

Zapisywanie i odtwarzanie atrybutów Często konieczne jest operowanie na wielu kontekstach - stąd potrzeba ich zapisywania i odtwarzania. int SaveDC(HDC hdc); BOOL RestoreDC(HDC hdc, int nsaveddc); Pora na kolejny program!

C. D. N.