PhotoYebator 2.0 - pożądane funkcje

0

Witam, w nawiązaniu do tematu: Czy warto zrobić PhotoMake(PhotoYebator) 2.0? postanowiłem ułatwić polaczkowi zadanie i zacząć spisywać funkcjonalność, jaka powinna się wg nas (userów 4p) znaleźć w tym epokowym programie ;]

Moim zdaniem potrzebne są:

  1. operowanie na warstwach
  2. rysowanie kształtów wektorowo (żeby można je było przesuwać, mierzyć pole (@polaczek17: widzisz, już wiesz jak to zrobić ;) ), obracać
  3. podstawowe filtry typu: jasność, kontrast, nasycenie, negatyw, itp. + rozmycie (np. Gaussa)
  4. zapis do .bmp chociaż ;) (.png pożądane ;p)
  5. obsługa wtyczek (!)

To na początek wystarczy ;]

0

Hehe dzięki za topic takie wylistowanie to na pewno ułatwi odgadnięcie oczekiwań :) To nic, że niektóre rzeczy wykluczają się, bo gdyby nie było takich pomysłów to nowe spojrzenie nie miałoby sensu. A tu zobaczę jakie pożądane funkcje byłyby mile widziane przez userów 4p :)

0
- obsługa języków skryptowych (forum programistyczne w końcu :D ).
- możliwość podglądania nagłówków plików (patrz powyżej)
- cofanie, najlepiej z branchami :P
- zapis i odczyt z .bmp (24bit, 16bit, 24 bit, 1 bit, a co!), .ico, .cur, .dib .jpg, .png, .gif, .tiff, .svg, import z .avi i .mp4, wizualizacja plików
- sterowanie klawiaturą, myszką, gamepadem, joystickiem, kierownicą, głosem i myślami

Skoro jest tyle wymagań to może lepiej od razu założyć projekt na sourceforge bo polaczek biedny sobie nie poradzi ;)

0

W sumie można by było zrobić z tego projekt "forumowy" i pomóc polaczkowi ;]
@msm: patrząc po Twoich wymaganiach, to są to wymagania trochę... zaawansowane ;p Ale cóż - trzeba myśleć przyszłościowo :D hehe ;) Za obsługę języków skryptowych plus. A do Twoich .avi i .mp4 to wartoby było dodać "batch convert" (analogiczna funkcja, jak np w IrfanView) ale nie dla wielu plików a dla wielu klatek z filmów ;) Choć wtedy to już by było MovieYebator :D Albo stosowna wtyczka do PhotoYebatora. Ewentualnie - przy dobrze zrobionej architekturze - po prostu film byłby kolejnym źródłem obrazów dla silnika filtrów.

0

Zgadzam się co do joty z tym co napisał [losowa nazwa] (nie było innego nicka wolnego? :P)

0

Małe pytanko mam co do funkcji. Konkretnie chodzi o historię.
W PhotoShopie jest tak, że jak się użyje "ctrl + z" to jest cofanie, ale tylko o jedną pozycję. Czyli albo o jedną w tył albo powrót do stanu pierwotnego.

Lepsze jest takie rozwiązanie czy może lepiej zrobić nieskończenie długie cofanie historii? Czyli każde ctrl + z cofa o kolejną pozycję.

0

żeście dali mu roboty na 5 lat...

0

Stanowczo lepszym rozwiązaniem jest cofanie o jedną pozycję.

0
polaczek17 napisał(a)

Małe pytanko mam co do funkcji. Konkretnie chodzi o historię.
W PhotoShopie jest tak, że jak się użyje "ctrl + z" to jest cofanie, ale tylko o jedną pozycję. Czyli albo o jedną w tył albo powrót do stanu pierwotnego.

Lepsze jest takie rozwiązanie czy może lepiej zrobić nieskończenie długie cofanie historii? Czyli każde ctrl + z cofa o kolejną pozycję.

No dobra dobra, ale Photoshop poza tą opcją ma jeszcze ctrl+alt+z i tu już masz dłuższą historię... Osobiście dużo częściej wykorzystuję skrót ctrl+alt+z niż ctrl+z.

0

To na czym stanęło z tą historią?

Bo @polaczek17 pytał się, czy zrobić cofanie "tylko o jedną pozycję" czy "nieskończenie długie". @sirkruk odpisał, że "Stanowczo lepszym rozwiązaniem jest cofanie o jedną pozycję", co sugeruje opcję pierwszą.

To nieprawda. Niezależnie od preferencji, cofanie o tylko jedną pozycję jest gorsze niż cofanie o wiele pozycji (najlepiej nieskończenie długie). Skomplikowane branche nie są może potrzebne, byłyby też trudne w implementacji. Ale możliwość cofnięcia się o kilka pozycji, a potem ew. pójścia do przodu o kilka (jeśli cofnęliśmy się za bardzo) to podstawa. W zwykłym Paincie było cofanie o bodaj 4 pozycje. Nie ma powodu by nie umożliwić cofania o 400 pozycji, albo i nieskończenie wiele, jeśli @polaczek17 umie to sensownie napisać. Chyba wszystkie rozsądne programy graficzne mają cofanie o wiele pozycji. Nawet jeśli bardzo okroilibyśmy opcje PhotoYebatora (okrajanie jest nawet fajne), to tę rzecz bym z pewnością zostawił.

Zresztą to fajne ćwiczenie programistyczne. Można skorzystać np. ze wzorca Polecenie (Command) i w ogóle ciekawie to zaimplementować, coby nie zajmowało całego RAM-u po godzinie pracy ;).

0

No właśnie ja osobiście tak myślałem, aby zrobić cofanie w nieskończoność (ile się chce), ale wolałem spytać.
Taka możliwość zresztą była w PhotoMake 1.0 z tą różnicą, że tam małe zgrzyty były.

Ostatecznie zrobię tak:

  • będzie tak i tak. Tylko osobiście bardziej bym podpiął pod ctrl + z cofanie w nieskończoność a pod ctrl + alt + z cofanie o jedną pozycję. Wydaje mi się to bardziej logiczne i intuicyjne.
0

Akceleracja OpenGL/ OpenCL.

0

A po co w ogóle mieć dwie opcje? Nie wystarczy samo cofanie w nieskończoność? Jak ktoś chce raz, to wciśnie sobie CTRL+Z raz. Może mi ktoś wytłumaczyć po co osobne skróty do tego? (domyślam się, że jest w tym jakiś sens, skoro mówicie, że w Photoshopie tak jest...)

0

Nie wiem jakie są opcje w Photoshopie, ale sensownym rozwiązaniem byłoby coś takiego:

  • jeden skrót do nielimitowanego cofania,
  • jeden skrót do nielimitowanego ponawiania następnej cofniętej operacji,
  • jeden skrót do cofania o jeden krok lub ponawiania ostatnio cofniętej operacji (w zależności od sytuacji),
0

A po co w ogóle mieć dwie opcje? Nie wystarczy samo cofanie w nieskończoność? Jak ktoś chce raz, to wciśnie sobie CTRL+Z raz. Może mi ktoś wytłumaczyć po co osobne skróty do tego? (domyślam się, że jest w tym jakiś sens, skoro mówicie, że w Photoshopie tak jest...)

To jest zdaje mi się z powodu szybkości. Tzn nie szybkości samego programu, ale szybkości użytkowania programu. Tzn użytkownik cofa i "cofa cofnięcie" tym samym skrótem. Dzięki temu nie trzeba skakać palcami po klawiaturze co jest wygodniejsze i szybsze.

Nie wiem jakie są opcje w Photoshopie, ale sensownym rozwiązaniem byłoby coś takiego:

  • jeden skrót do nielimitowanego cofania,
  • jeden skrót do nielimitowanego ponawiania następnej cofniętej operacji,
  • jeden skrót do cofania o jeden krok lub ponawiania ostatnio cofniętej operacji (w zależności od sytuacji),

I dokładnie tak to zrobię :)

0

Ja to zrozumiałem tak, że albo cofamy o jedną pozycję, albo do samego początku (w sensie, że tylko jedna z dwóch funkcji ma zostać zaimplementowana) i w takim przypadku trochę bez sensu by było, gdyby użytkownik nie mógł się cofnąć o jeden krok. W każdym razie moim zdaniem cofnięcie o jeden krok musi być, a cofnięcie o kilka kroków naraz może być ciekawym dodatkiem.

Chyba wszystkie rozsądne programy graficzne mają cofanie o wiele pozycji.

Nie tworzę grafiki, bo po prostu tego nie umiem robić, ale jakąś tam styczność z programami graficznymi mam. W domu korzystam z gimpa i tam nie widzę takiej funkcji. Jeśli gdzieś jednak jest, to napiszcie, bo może być czasami przydatna :)

0

Co do cofania - może przydałaby się opcja zapisywania w pamięci jakichś "milestoneów" (zamiast branchy). Czyli gdy uznamy, że coś jest fajne, to klikamy "Save milestone" a potem robimy co chcemy mogąc zawsze powrócić do milestone'a.

0

Zaje*isty pomysł :) Na 100% coś takiego zrobię.

0

To ja mam taką sugestię:
Jakaś kombinacja klawiszy + jakaś cyferka - zapisanie milestona i przypisanie go do cyferki.
Jakaś inna kombinacja klawiszy + cyferka - przywrócenie milestona przypisanego do cyferki (o ile taki istnieje).

0
bswierczynski napisał(a)

A po co w ogóle mieć dwie opcje? Nie wystarczy samo cofanie w nieskończoność? Jak ktoś chce raz, to wciśnie sobie CTRL+Z raz. Może mi ktoś wytłumaczyć po co osobne skróty do tego? (domyślam się, że jest w tym jakiś sens, skoro mówicie, że w Photoshopie tak jest...)

W Photoshopie jest tak: nanosisz sobie jakąś zmianę (np. zmiana koloru tła z niebieskiego na czerwony) i nie jesteś teraz pewien, która opcja jest lepsza. Wciskasz raz ctrl+z to masz z powrotem niebieski. Naciskasz drugi raz to masz z powrotem czerwony. Po kolejnym naciśnięciu znowu niebieski...
Możesz sobie porównać obie wersję tym sposobem.

Osobiście nie cierpię tego rozwiązania, bo nie widzę problemy w naciskaniu na zmianę ctrl+z z ctrl+y (a w Photoshopie ctrl+alt+z i ctrl+shift+z....). Te skróty są pogięte, a wykorzystuję je DUUUŻO częściej niż ten nieszczęsny ctrl+z.

Dodatkowo wnerwia mnie mocno to, że w Photoshopie historia cofania JEST SKOŃCZONA. Może i długa, nie wiem, nie liczyłam, ale definitywnie skończona. Twórcy nie pomyśleli o tym, że jak ktoś tabletem rysuje włosy np. to wykona bardzo bardzo dużo pojedynczych pociągnięć w krótkim czasie :/ Chyba z milion razy musiałam całą warstwę od początku rysować, bo nie mogłam się cofnąć do wersji, która mnie satysfakcjonowała.

0

Aha, to teraz już rozumiem. Sam jakoś nigdy nie widziałem potrzeby, by kilka razy powtórzyć sekwencję Cofnij/Powtórz. Jeśli zrobi się to raz czy dwa, to sięgnięcie do CTRL+Y nie jest problemem. Jeśli ktoś chciałby jednak trochę pospamować taką sekwencją, to wtedy faktycznie wciskanie tylko CTRL+Z (pierwsze wciśnięcie = Cofnij, drugie = Powtórz, trzecie = Cofnij itp.) będzie odczuwalnie wygodniejsze. Z CTRL+Z dość niewygodnie się sięga do CTRL+Y; to nie to samo co wytnij/kopiuj/wklej, które są koło siebie.

Tak naprawdę to oczywiście w każdym programie graficznym historia jest skończona. Komputery mają ograniczone zasoby i ciężko wymagać, by starczyło pamięci na jakieś tam tryliony stanów ;).

0
bswierczynski napisał(a)

Tak naprawdę to oczywiście w każdym programie graficznym historia jest skończona. Komputery mają ograniczone zasoby i ciężko wymagać, by starczyło pamięci na jakieś tam tryliony stanów ;).

To trzeba wrzucić w chmurę. ;)

0

Wracając do filtrów to sprawa jest taka:

  • Najdłużej działający filtr działał póki co w czasie: 6921 milisekund na procesorze AMD Athlon 2.21GHz jednordzeniówka. Obraz o wymiarach 2048x1536
    Udało się jednak w tym czasie nie zamrażać programu i ładnie zobrazować czas postępu na Gauge. Zobrazowanie nie wydaje się mieć tragicznego wpływu na czas trwania algorytmu.

Jak sądzicie 7 niecałe sekund da się przeżyć?

Wygląda to tak:
Użytkownik otwiera sobie coś z menu. Tam ustala wielkość maski. Ustala wartości jakie mają być w masce i wszystko na bieżąco widzi.
Widzi na bieżąco co się dzieje dzięki temu, że ma podgląd. Podgląd jest jednak mniejszy niż cały obraz. Dokładnie jeszcze nie wiem ile ale powiedzmy 500x500 w strechu. Wtedy algorytm działa na tyle płynnie, że użytkownik tego nie odczuje. Po zadowalającym efekcie klika sobie "ok" i wtedy algorytm zaczyna działać na cały obraz ( nie tylko kawałek, którym jest podgląd") Zajmuje mu to wtedy 6921 milisekund.

Jest to póki co najdłużej działający filtr ( reszta działa od 1 do 2 sekund ). 1 czy 2 sekundy to myślę da się przeżyć po kliknięciu na Ok. Tym bardziej, że paseczek dałem ala GIMP :)

0

polaczek jak chcesz zrobic cos przydatnego z tymi filtrami to oto moja propozycja:

  • program dzialajacy z konsoli
  • duzo filtrow/efektow
  • obsluga png, jpg, bmp, tiff, tga
  • dziala na linuchu/fbsd/windzie/macosx
  • uzywa wszystkich rdzeni na maszynie (!)
0

cepa proponujesz dla gościa przywiązanego do bcb aby jego program działał na linuchu/macos... oraz obsluge formatow grafiki nie obslugiwanych przez bcb hehe

0

Program działający pod konsolą ( a raczej dodatkowa atrakcja w postaci konsoli ) nie jest trudna do zrobienia. Pytanie jednak po co to :P? Ja mogę to zrobić tylko, że Fotoamator z tego nie skorzysta, a innym osobom będzie nieco trudno to obsługiwać bo efekty będą widoczne dopiero PO wykonaniu operacji. (edit: no w sumie to nie koniecznie efekty widocznie PO. Będzie można też zrobić normalnie tak jak z paskami przewijania czy innymi. Ale po co konsola? )

Dużo filtrów itd to oczywiście będzie.

Obsługa formatów jpg, bmp, tiff, tga też będzie. Tzn nie jestem pewien co do tga, ale tiff już wcześniej chyba był obsługiwany nie mówiąc o reszcie. Postaram się dodać dużo formatów.

Działanie na linuxie niestety nie jest możliwe. Bo albo skorzystam z BCB albo z VisualStudio C#. Oba wykluczają linuxa.

Używanie wszystkich rdzeni postaram się zrobić. Będzie to dość kłopotliwe ale nie jest strasznie trudne aż tak :) Sądzę, że dam radę zrobić.

othello: co do tych formatów to właśnie tak jak napisałem. Dam radę zrobić. Nie jestem tylko pewien co do tga.

0

Hej. I znów proszę o poradę.
Konkretnie chodzi o jeden z najważniejszych elementów - okno filtrów.

Najpierw może pokażę obrazek z 3 wariantami :
user image

Chodzi o to, który wariant według Was jest najlepszy?
Opiszę je może nieco:

Wariant 1.)
kanały są przechowywane w comboboxie. Są to: "wszystkie kanały, kanał czerwony, kanał zielony, kanał niebieski". Każda zmiana kanału np czerwonego jest zapamiętywana, dzięki temu nie trzeba co chwilę klikać "ok" i można wybrać kanał czerwony zmodyfikować go i bez potwierdzania zmian modyfikować wedle uznania inne kanały. Wszystkie zmiany są zapisane w pamięci a suwaki dotyczą wybranych kanałów.

Wariant 2.)
To w sumie ten sam wariant co 1 tyle, że na radiobuttonach. Działanie analogicznie jak w przykładzie 1.

Wariant 3.)
Tu jest troszkę inaczej. Każdy kanał ma osobny suwak. Powoduje to, że okno filtrów jest nieco większe, ale nie tracimy czasu na klikanie comboboxa / radiobuttona. Możemy scalić suwaki tak by za pomocą jednego przesuwać od razu wszystkie trzy. No i analogicznie możemy wyłączyć tę opcję.

Jak myślicie, który wariant jest najlepszy? Ja swojego lidera mam, ale nie powiem który to, by nie sugerować :)

No i jeśli macie jakieś inne sugestie co do interfejsu to chętnie posłucham.

ps: to co widać na obrazku to nie prawdziwy interfejs programu tylko taki zalążek, który ma pokazywać jak to mniej-więcej wyglądać będzie.

1

Jak dla mnie wariant 3 jest najlepszy.

0

Ok, poczekam na jeszcze parę opinii.
Zapomniałem dodać, że przy każdym suwaczku będzie na pewno Edit z liczbą na którą aktualnie wskazuje suwak i - co bardzo ważne - combobox na innym panelu z wyborem trybu danego filtru. Jak już wspomniałem będzie wiele filtrów w tym kilka odmian tego samego dających inny efekt więc gdzieś jeszcze włoży się combobox-a z wyborem trybu np kontrastu etc.

0

Wariant 3, ale usunąłbym "Obraz przed". I tak jest on otwarty w głównym oknie, prawda?

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