Historia edycji w programie do obróbki grafiki
Ostatnio zmodyfikowano 2025-09-08 20:40
tBane Temat założony przez niniejszego użytkownika |
Historia edycji w programie do obróbki grafiki » 2025-08-23 19:37:24 Cześć. Piszę program graficzny i zastanawiam się jak zrobić system historii tzn. żeby można było cofać i ponawiać akcje takie jak np. rysowanie z użyciem pędzla, wklejenie obrazu lub nałożenie filtra.
Jak na razie to wymyśliłem dwie metody, ale która jest lepsza Waszym zdaniem?
Metoda 1 -zapisywane są obrazy w taki sposób, że gdy cofniemy się o akcje to przywracany jest obraz sprzed akcji
Metoda 2 -zapisywany jest typ akcji i jego wartość np. (narysuj pędzlem piksele, tablica pikseli) lub (nałóż filtr, wartość)
Bardziej skłaniam się ku metodzie drugiej ale też zastanawiam się jak wtedy przetwarzać obraz. Czy za każdym razem należy wczytać całą historię edycji i ją nałożyć na obraz czy trzymać drugi obraz ten do renderingu?
|
|
pekfos |
» 2025-09-02 16:08:21 Kopia obrazu po każdej operacji. No i odrzucasz wersje starsze niż N kroków, bo Ctrl+Z nigdy nie zastępuje kontroli wersji. Jeżeli będziesz miał problem z pamięcią, możesz w ramach optymalizacji podzielić obraz na sektory np 64x64 px i zapisywać tylko zmienione sektory w ramach jednego kroku edycji. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-02 16:19:54 OK, a więc tak właśnie zrobię w moim programie do obróbki animacji 2D |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-08 18:36:08 Mam jednak pytanie. Dlaczego zapisywać w historii obrazy a nie operacje? |
|
pekfos |
» 2025-09-08 20:39:11 Bo tak jest prościej. Gdybyś miał zapisywać operacje, to po pierwsze byś musiał być w stanie je zapisać - czyli nie modyfikować obrazu wprost, ale opisać zmianę, osobno dla każdego narzędzia jakie masz, potem aplikować zmianę według tego opisu. Historia będzie ograniczona przez koszt obliczeniowy nakładania tych operacji. Operacje nie są odwracalne, więc żeby uzyskać obraz z poprzedniego kroku, musisz na obrazie bazowym zaaplikować wszystkie operacje poza ostatnią. Zapisywanie całych obrazów będzie działać niezależnie od narzędzi. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-09-08 20:40:31 Ok. Dziękuję za wyczerpujące wytłumaczenie. :-) |
|
« 1 » |