radosław gurzyński „fotka” – program do przeglądania i podstawowej edycji obrazów
DESCRIPTION
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Podyplomowe Studium Programowania i Zastosowania Komputerów. Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów napisany w języku C#. Praca dyplomowa - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/1.jpg)
Uniwersytet Mikołaja KopernikaWydział Fizyki, Astronomii i Informatyki StosowanejPodyplomowe Studium Programowania i Zastosowania Komputerów
Radosław Gurzyński
„„Fotka”Fotka” –Program do przeglądania i podstawowej edycji obrazów
napisany w języku C#
Praca dyplomowa opiekun: dr Jacek Matulewski
Toruń 2008
![Page 2: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/2.jpg)
Założenia projektu
Podstawowym założeniem projektu było stworzenie programu umożliwiającego przeglądanie zdjęćprzeglądanie zdjęć oraz rozwinięcie umiejętności programowania w języku C#. Zaawansowane filtryfiltry oraz mechanizmy skalowaniaskalowania oparte na framework’u AForge.NET, w znaczący sposób rozszerzyły jego możliwości.
![Page 3: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/3.jpg)
Okno programu
![Page 4: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/4.jpg)
Język programowania C#
C#C# (C Sharp, C♯, wym. si-szarp, dosłownie C-krzyżyk) to obiektowy język programowania zaprojektowanym przez zespół pod kierunkiem Andersa Hejlsberga dla firmy Microsoft. Program napisany w tym języku kompilowany jest do języka Common Intermediate Language (CIL), specjalnego kodu pośredniego wykonywanego w środowisku uruchomieniowym .NET, Mono lub DotGNU (środowiska darmowe).
![Page 5: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/5.jpg)
Przykładowy kod C#
using System;using System.Collections.Generic;using System.Text;
namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Console.WriteLine("Hello world!"); } }}
Deklaracje przestrzeni Deklaracje przestrzeni nazwnazw
Klasa główna programuKlasa główna programu
‘‘Main’ rozpoczyna programMain’ rozpoczyna program
Wypisanie tekstu w konsoli Wypisanie tekstu w konsoli
![Page 6: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/6.jpg)
MS Visual C# 2005 Express
Eksplorator Eksplorator projektuprojektu
Okno właściwości Okno właściwości aktywnego aktywnego obiektuobiektu
Kod programuKod programu
Błędy / ostrzeżenia podczas Błędy / ostrzeżenia podczas kompilacjikompilacji
![Page 7: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/7.jpg)
Wykorzystane biblioteki
• ScalablePictureBox ScalablePictureBox – ScalablePictureBox jest rozszerzeniem standardowej kontrolki PictureBox znanej z Visual C#. Skaluje ona automatycznie załadowany do niej obraz i pokazuje go w skali dopasowanej do aktualnej wielkości kontrolki;
• AForge.NET FrameworkAForge.NET Framework – biblioteka AForge.Imaging jest zbiorem narzędzi do skalowania obrazów, nakładania filtrów,
tekstur, wyszukiwania krawędzi; • Image Processing LabImage Processing Lab – formularze filtrów;
![Page 8: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/8.jpg)
Format XML
XMLXML (z angielskiego Extensible Markup Language, w wolnym tłumaczeniu rozszerzalny język znaczników) to uniwersalny język formalny przeznaczony do reprezentowania różnych danych w ustrukturalizowany sposób. XML jest niezależny od platformy, co umożliwia łatwą wymianę dokumentów pomiędzy różnymi systemami.
Pliki XMLXML wykorzystano do przechowywania konfiguracji programu.
![Page 9: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/9.jpg)
Odczyt i zapis danych z XML
• System.XML.XmlTextReaderSystem.XML.XmlTextReader – Klasa odpowiadająca za odczyt danych XML z pliku, sprawdzając czy dokument jest poprawnie zbudowany. Odczytując dokument można poruszać się tylko do przodu;
• System.XML.XmlTextWriterSystem.XML.XmlTextWriter – pozwala z kolei na zapisywanie danych do pliku XML (bez możliwości cofnięcia się do poprzednich linii);
![Page 10: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/10.jpg)
Przykładowy plik XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?><!--plik z ustawieniami okna fotka-->
<opcje nazwa="fotka"> <pozycja> <x>209</x> <y>137</y> </pozycja> <wielkość> <w>953</w> <h>748</h> </wielkość> <ostatnio_otwarty> <sciezka_1>C:\Dokumenty\GT\005.jpg</sciezka_1> </ostatnio_otwarty></opcje>
Nagłówek / deklaracja wersji i kodowaniaNagłówek / deklaracja wersji i kodowania
Znacznik ‘opcje’ zawierający wszystkie Znacznik ‘opcje’ zawierający wszystkie elementyelementy
Element pozycja i jego el. potomne x Element pozycja i jego el. potomne x i y z wartościamii y z wartościami
Element wielkość i jego el. potomne Element wielkość i jego el. potomne w i h wartościamiw i h wartościami
Znacznik zamykający ‘opcje’Znacznik zamykający ‘opcje’
Scieżka do ostatnio otwartego plikuScieżka do ostatnio otwartego pliku
![Page 11: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/11.jpg)
Mechanizm Drag’n’drop
Przeciągnij i upuśćPrzeciągnij i upuść (ang. drag and drop) to jedno z udogodnień oferowanych przez menedżery okien graficznych interfejsów użytkownika. Polega ono na umożliwieniu użytkownikowi wykonywania określonych operacji na dwóch różnych obiektach za pomocą pojedynczego ruchu myszą komputerową.
![Page 12: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/12.jpg)
W celu użycia tej techniki należy wykonać następujące czynności:• ustawić kursor myszy nad obiektem na ekranie, wcisnąć lewy klawisz myszy• trzymając wciśnięty klawisz, przesunąć myszą kursor do miejsca docelowego• puścić przycisk myszy
Przeciąganie pliku na ikonę programu lub jego okno w celu Przeciąganie pliku na ikonę programu lub jego okno w celu otworzenia tego pliku:otworzenia tego pliku:
![Page 13: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/13.jpg)
Menu programuMenu ‘Plik’Menu ‘Plik’ – pozwala otworzyć dowolny lub ostatnio otwarty, zamknąć aktualnie otwarty, zapisać, opuścić program;
Menu ‘Edycja/Filtry’Menu ‘Edycja/Filtry’ –pozwala przywołać ustawienia programu oraz zastosować wybrane przekształcenie lub filtr;
Menu ‘Info’Menu ‘Info’ – zawiera informacje na temat programu;
![Page 14: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/14.jpg)
Okno ustawień
![Page 15: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/15.jpg)
Dostępne przekształcenia / filtry
• Skalowanie• Obracanie o dowolny kąt• Symetria względem obu osi• Filtrowanie kanałów RGB• Skala szarości• Sepia• Negatyw• Korekta nasycenia, jasności, kontrastu• Binaryzacja wg kilku algorytmów• Zmiana ostrości (wygładzanie i wyostrzanie – kilka
algorytmów)• Wyszukiwanie krawędzi• Drgania, pikselizacja
![Page 16: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/16.jpg)
Przykłady przekształceń
Oryginał obrazu:
![Page 17: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/17.jpg)
Obrót o zadany kąt
![Page 18: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/18.jpg)
Skalowanie
![Page 19: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/19.jpg)
Filtrowanie kanałów
![Page 20: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/20.jpg)
Sepia
![Page 21: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/21.jpg)
Skala szarości
![Page 22: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/22.jpg)
Negatyw
![Page 23: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/23.jpg)
Jasność, nasycenie, kontrast
![Page 24: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/24.jpg)
Binaryzacja
![Page 25: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/25.jpg)
Wygładzanie
![Page 26: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/26.jpg)
Wyostrzanie
![Page 27: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/27.jpg)
Wykrywanie krawędzi
![Page 28: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/28.jpg)
Pikselizacja
![Page 29: Radosław Gurzyński „Fotka” – Program do przeglądania i podstawowej edycji obrazów](https://reader035.vdocuments.site/reader035/viewer/2022062308/56812b59550346895d8f7b78/html5/thumbnails/29.jpg)
Koniec
Dziękuję za uwagę
* w prezentacji wykorzystano plik graficzny img5.jpg będący częścią systemu Windows Vista i własnością Microsoft