Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Historia edycji w programie do obróbki grafiki

Ostatnio zmodyfikowano 2025-09-08 20:40
Autor Wiadomość
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?
P-182908
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.
P-182947
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
P-182950
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?
P-182987
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.
P-182988
tBane
Temat założony przez niniejszego użytkownika
» 2025-09-08 20:40:31
Ok. Dziękuję za wyczerpujące wytłumaczenie. :-)
P-182989
« 1 »
  Strona 1 z 1