Jak dynamicznie wyświetlać Bitmap w kontrolce

0

Witam,

podjąłem się ciężkiego zadania. Chcę napisać mini aplikację graficzną w WPF- otworzenie wybranej grafiki w celu jej edytowania(zmiana kontrastu, jasności, dodanie napisu itp.).

Jako, że z samymi funkcjami do zmiany wybranych parametrów jakoś nie ma problemów, tak złożenie wszystkiego do kupy jest dla mnie problemem. Nie wiem jak zrealizować zmianę właściwości "na bieżąco".

Próbuję w kontrolce Image, ale żeby w niej wyświetlać cokolwiek trzeba podać jej źródło w postaci ścieżki pliku na dysku.

Mój zamysł jest taki żeby z wybranej grafiki stworzyć obiekt Bitmap, który byłby wyświetlany i odświeżany po wprowadzonych zmianach (np. przesuwam slider, którego wartość odpowiada za kontrast edytowanego obrazka, który na bieżąco się zmienia w oknie).

Bardzo proszę o pomoc i jakieś pomysły jak można zrealizować coś takiego. Kompletnie nie wiem jak można to ugryźć.

Pozdrawiam

0

w kontrolce PictureBox możesz wyświetlać co chcesz..

0

z wpf nie miałem zbyt wiele wspólnego i to będzie trochę "strzelanie"
a jakby ten plik zapisywać niejawnie (tzn bez pytania o lokalizację, gdzieś domyślnie np w katalogu aplikacji) na dysku z atrybutem ukryty czy coś jako plik "tymczasowy" który zostanie usunięty po zamknięciu aplikacji? wtedy ścieżkę podasz :)
coś jak office który też przecież tworzy pliki tymczasowe dokumentu podczas edycji :)

0

Wiesz co kwestia jest dość prosta, pytanie pierwsze czy Ty już masz ten obraz wczytany do kontrolki? Bo jeżeli tak w każdej funkcji, która robi coś z Twoim obrazem bierzesz i tworzysz sobie Bitmape następnie do niej przepisujesz obraz z kontrolki, do której wcześniej wczytałeś obraz, potem coś robisz z tym obrazem a na koniec wpisujesz Twoja przerobione Bitmape to kontrolki. Pseudo kod wyglądałby tak:

void Twoja funkcja(){

Bitmap obraz = NazwaTwojejKontrolki.Source; //tworzysz lokalna bitmape i do niej przepisujesz to co masz w kontrolce 


//jakies operacje na bitmapie
//...
//...
//...

NazwaTwojejKontrolki.Source = obraz; // a tutaj wpisujesz przerobiony obraz aby byl wyswietlany w kontrolce
0

Pisze z głowy czyli z niczego ale jako tło mrzesz ustawić ctrl.Background(albo Fill) = new ImageBrush(Bitmapimage img) ; coś w ten deseń
Każda edycja polegałaby na podmienianiu bit mapy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1