Przeglądarka plików graficznych

Krótka specyfikacja wymagań funkcjonalnych

Program ma umożliwiać przeglądanie zawartości pliku graficznego (BMP, JPG) wybranego za pośrednictwem standardowego okna dialogowego służącego do wyboru pliku. Dokładniej:

  1. Program powinien zawierać główne menu oraz pasek narzędziowy. Menu powinno zawierać dwie opcje” Plik” oraz „Widok”.
  2. Podmenu „Plik” powinno posiadać opcje: „Otwórz”, „Właściwości”, separator, „Zamknij”.
  3. Podmenu „Widok” powinno posiadać opcje: „Dopasuj”, „Normalny rozmiar”, „Pokaż w osobnym oknie”.
  4. Opcje „Otwórz”, „Właściwości”, „Dopasuj”, „Normalny rozmiar”, „Pokaż w osobnym oknie” powinny być dostępne również, za pośrednictwem przycisków z paska narzędziowego.

Po wyborze opcji „Otwórz” pojawia się standardowe okno wyboru pliku (filtr: pliki BMP i JPG), po wybraniu poprawnego pliku graficznego jego zawartość pojawia się w centralnej części okna programu. Zawartość pliku jest tak przeskalowana, aby pokazała się w odpowiednich proporcjach, i mieściła się w oknie programu, tak jak po wybraniu opcji „Dopasuj”.

Po wyborze opcji „Właściwości” pojawia się okno zawierające informacje o otwartym pliku graficznym, takie jak jego nazwa, ścieżka dostępu, typ, wymiary, oraz inne informacje, jakie uda się pozyskać z wykorzystywanego komponentu graficznego.

Po wyborze opcji „Dopasuj” zawartość pliku jest tak przeskalowana, aby pokazała się w odpowiednich proporcjach, i mieściła się w oknie programu.

Po wyborze opcji „Normalny rozmiar” zawartość pliku pokazywana jest w jego naturalnym rozmiarze, jego zawartość jest centrowana. Jeżeli plik jest większy, pokazują się paski przewijania (odpowiednio poziomi i/lub pionowy).

Po wyborze opcji „Pokaż w osobnym oknie” zawartość pliku pokazywana jest w osobnym oknie, w jego naturalnym rozmiarze, jeżeli to konieczne pokazują się paski przewijania.

Narzędzia implementacji

Proszę zaimplementować program w każdym z rozważanych na zajęciach środowisk zintegrowanych. Aktualnie C++ Builder, C# VisualStudio (WF lub WPF), C++ QtCreator, można również rozważyć implementację w jęzku Java (Swing lub FX).

Rezultat

Zrealizowane projekty proszę zachować, będą brane pod uwagę przy negocjowaniu oceny zaliczeniowej.