290 likes | 434 Vues
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
E N D
Uniwersytet Mikołaja KopernikaWydział Fizyki, Astronomii i Informatyki StosowanejPodyplomowe 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 opiekun: dr Jacek Matulewski Toruń 2008
Założenia projektu Podstawowym założeniem projektu było stworzenie programu umożliwiającego przeglądanie zdjęć oraz rozwinięcie umiejętności programowania w języku C#. Zaawansowane filtry oraz mechanizmy skalowania oparte na framework’u AForge.NET, w znaczący sposób rozszerzyły jego możliwości.
Język programowania 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).
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 nazw Klasa główna programu ‘Main’ rozpoczyna program Wypisanie tekstu w konsoli
MS Visual C# 2005 Express Eksplorator projektu Kod programu Okno właściwości aktywnego obiektu Błędy / ostrzeżenia podczas kompilacji
Wykorzystane biblioteki • 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 Framework – biblioteka AForge.Imaging jest zbiorem narzędzi do skalowania obrazów, nakładania filtrów, tekstur, wyszukiwania krawędzi; • Image Processing Lab – formularze filtrów;
Format XML XML (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 XML wykorzystano do przechowywania konfiguracji programu.
Odczyt i zapis danych z XML • System.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.XmlTextWriter – pozwala z kolei na zapisywanie danych do pliku XML (bez możliwości cofnięcia się do poprzednich linii);
Przykładowy plik XML Nagłówek / deklaracja wersji i kodowania <?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> Znacznik ‘opcje’ zawierający wszystkie elementy Element pozycja i jego el. potomne x i y z wartościami Element wielkość i jego el. potomne w i h wartościami Scieżka do ostatnio otwartego pliku Znacznik zamykający ‘opcje’
Mechanizm Drag’n’drop 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ą.
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 otworzenia tego pliku:
Menu programu Menu ‘Plik’ – pozwala otworzyć dowolny lub ostatnio otwarty, zamknąć aktualnie otwarty, zapisać, opuścić program; Menu ‘Edycja/Filtry’ –pozwala przywołać ustawienia programu oraz zastosować wybrane przekształcenie lub filtr; Menu ‘Info’ – zawiera informacje na temat programu;
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
Przykłady przekształceń Oryginał obrazu:
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