Portál AbcLinuxu, 30. dubna 2025 21:27
Moc se mi to líbí, ta rychlost....k neuvěření! Jen aby to dokázal používat i BFU jako já
O LightZone jsem nikdy neslyšel, ale Google naznačil, že to nevypadá špatně. Rozhodně se nemůžu dočkat oficiálního vydání
Predstavíš to na nejakom linuxáckom alebo inom zraze?Časem možná ano. Zatím je na tom práce jako na kostele.
Chceš aby sa niekto pridal k tvojej práci?Až bude GUI v trochu lepším stavu, tak se bude hodit každá ruka na implementaci nových operací do GUI. Zatím jsou tam jen křivky (i když technicky vzato ve FotoSHOCKu jsou i načtení obrázku, náhled nebo konverze barevných prostorů standardní operace).
Myslíš že kód gegl/gimp je zbytočne zložitý? aj s pridaním všetkých funkcií ktoré používajú?Kód GEGL je podle mého názoru jeden z nejhezčích kódů v opensource, když pominu nutné skopičiny kvůli GObject. Dá se přečíst a pochopit za 2–3 dny (nepočítám operace), takže bych řekl, že je i docela jednoduchý. Ale, jak už je vidět z mých předchozích řádků, nejsem fanda GObject, spíš se mi líbí rozhraní VIGRA, kterým jsem se částečně inspiroval. Kód GIMPU jsem studoval naposledy ca před rokem a to už bylo horší. Ale u programu, který je tu už pěkných pár let to není nic překvapivého. Zejména kvůli současné existenci částečně integrovaného GEGL a starého tile manageru. Předpokládám, že s přesunem ke GEGL, který se snad konečně děje (když jsem začal psát FotoSHOCK, tak to bylo v nedohlednu…), se kód zlepší.
Pridáš podporu filtrov z Gimpu?Nevím. Pokud ano, tak je to hudba vzdálené budoucnosti. Myslím, že by to mohl být docela problém. Spíš bych to viděl na nějaký wrapper, který by umožňoval spouštět gimpovské skripty v Pythonu.
Mám v práci blokovaný YT, môžem ťa poprosiť o nejaké screens GUI?OK, přidal jsem. Mimochodem, zkoušel někdy někdo možnost přidat video k zápisu? Mě to vrací chybu "Přístup odmítnut Pouze administrátor nebo vlastník tohoto objektu smí provést požadovanou akci!"
Ako dlho už na tom pracuješ?Zhruba od února minulého roku – jádro jsem navrhoval v rámci bakalářky. V současném stavu je oproti bakalářce prakticky kompletně přepsáno, zejména kvůli zavedení mipmap a obecnějšímu způsobu přidávání hran do grafu. Většina původního API ale zůstala téměř nezměněná (nepočítám změny datových typů pro parametry), takže bych řekl, že je API snad dostatečně dobré na to, aby se dalo považovat za stabilní.
Nechceš GUI spraviť tak ako ho má ten čo sa vysllovuje skoro rovnakoNe, chci ho úplně jiné. Rád bych měl GUI ve stylu Blender Node Editoru, jelikož je to neuvěřitelně mocné. Časem bych rád přidal i jednodušší GUI, kde se operace nebudou zobrazovat v grafu ale v řetězu s automatickým napojováním. Přeci jen například v případě, kdy je potřeba jen upravit křivky a změnit velikost obrazu, je nutnost sestavovat graf operací zbytečná a zdlouhavá práce.
diff -r 8b0788844b31 src/fotoshock/mainwindow.ui --- a/src/fotoshock/mainwindow.ui Thu Jul 26 18:31:05 2012 +0200 +++ b/src/fotoshock/mainwindow.ui Fri Jul 27 11:21:01 2012 +0200 @@ -38,7 +38,6 @@ <widget class="QStatusBar" name="statusbar"/> <action name="actionOpen"> <property name="icon"> - <iconset theme="document-open"/> </property> <property name="text"> <string>Open</string> @@ -46,7 +45,6 @@ </action> <action name="actionSave"> <property name="icon"> - <iconset theme="document-save"/> </property> <property name="text"> <string>Save</string> @@ -54,7 +52,6 @@ </action> <action name="actionSave_As"> <property name="icon"> - <iconset theme="document-save-as"/> </property> <property name="text"> <string>Save As</string> @@ -62,7 +59,6 @@ </action> <action name="actionQuit"> <property name="icon"> - <iconset theme="application-exit"/> </property> <property name="text"> <string>Quit</string>
vypada to dobře. Teda na videu :) V reálu jsem nějak nebyl schopný nahrát ani obrázek.
To jsem asi měl zmínit. Dodám i do zápisku. Pro zobrazení menu pro nahrání obrázku a přidání operací se musí kliknout pravým tlačítkem na bílé ploše. Propojení se dělá kliknutím na takovou tu šipku a tažením k jiné (modré šipky jsou výstupy, zelené jsou vstupy). Pro zobrazení GUI operace (zobrazení náhledu, nastavení křivek) slouží double click na operaci v grafu.
Jo, a pozor na jednu věc – GUI zatím neumí operace aktivovat, pokud nejsou propojovány „zdola nahoru.“ Nejdřív se tedy musí spojit root (načtený obrázek) s první operací, první operace s druhou atd.
Jen drobné poznámky: cmake je potřeba 2.8.8. Měl jsem 2.8.6 a tam není OPTIONAL_COMPONENTS ve find_package. Jakou Qt potřebuješ? 4.8.x? Nešlo mi uic na mainwindow.h, musel jsem to vohackovat, protože můj uic z 4.7.x nezná tag iconsetDíky za poznámky. Vyvíjím to na Archu, takže mám vždy jen to nejnovější
HermiteCurve
? To int* m_ctrlPointLUT
mě teda docela děsí FixedArray
- std::vector
má taky konstruktor s parametrem size, v podstatě by se imho dal použít místo toho, nebo tam máš nějaký spešl optimalizace?
To je ta třída HermiteCurve
?
Ne, problém je v QCurveWidget
a použití proměnných leftNear
a rightNear
. Když se hýbe s nějakým bodem, tyhle proměnné ukládají index bodu vlevo a index bodu vpravo. Pokud se ale přepne na jinou křivku, tyhle indexy už mohou být mimo rozsah vektoru ukládajícího body nové křivky. Na opravě jsem už začal pracovat (dodělání odkládám na zítřek…).
ToJe to lookup tabulka fixní velikosti, takže vektor je zbytečný overkill. Krom toho, ačkoliv je zatím využívána minimálně, pro floating point data a větší celočíselné datové typy se do ní bude muset přistupovat při zpracování každého pixelu, takže overhead, který vektor přidá by nejspíš byl problém.int* m_ctrlPointLUT
mě teda docela děsí, v tom bude problém, ne? Nešlo by to nahradit vectorem nebo něčím méně nebezpečným? Ten by se taky líp kopíroval...
Jinak ještě mně není jasný účel třídyV podstatě jde o to samé jako výše, vlastně bych mohl nahradit int* m_ctrlPointLUT touhle třídou. Je to minimální obal pro pole, který vlastně navíc ukládá jen velikost (ty výjimky nejsou úplně nutné a asi je nahradím asserty). std::vektor je pro daný účel strašný overkill.FixedArray
-std::vector
má taky konstruktor s parametrem size, v podstatě by se imho dal použít místo toho, nebo tam máš nějaký spešl optimalizace?
std::vector
overkill? Compile-time?
Je to lookup tabulka fixní velikosti, takže vektor je zbytečný overkill. Krom toho, ačkoliv je zatím využívána minimálně, pro floating point data a větší celočíselné datové typy se do ní bude muset přistupovat při zpracování každého pixelu, takže overhead, který vektor přidá by nejspíš byl problém.Silně pochybuju, že bys s c-style polem dostal lepší výkon než s
std::vector
. Viz.
V podstatě jde o to samé jako výše, vlastně bych mohl nahradit int* m_ctrlPointLUT touhle třídou. Je to minimální obal pro pole, který vlastně navíc ukládá jen velikost (ty výjimky nejsou úplně nutné a asi je nahradím asserty). std::vektor je pro daný účel strašný overkill.Ale vždyť
vector
je taky v podstatě pouze minimální obal pro pole. Lidi mají představu, že std::vector
je jakási velká, složitá a relativně pomalá třída vhodná jen na ukládání velkýho kvanta dat. Není to pravda.
Přijde mi, že použitím c-style array nebo psaním třídy jako je to FixedArray
zbytečně vynalézáš kolo a přiděláváš si práci (nehledě na to, že tam mohou být chyby).
Samozřejmě můžeš narazit na nějakej hodně specializovanej případ anebo případně špatnou implementaci STL/kompilátoru, ale tohle bych opravdu řešil teprv až bys nějakej výkonovej problém skutečně naměřil...
#define M_PI 3.14159265358979323846
v src/fotoshock/widgets/QGraph/Edge.cpp
.
#define _USE_MATH_DEFINES
pred includovani math.h
find_package(Boost REQUIRED COMPONENTS system filesystem…
tak, aby neobsahoval OPTIONAL_COMPONENTS.
[ 89%] Generating ui_mainwindow.h uic: Error in line 41, column 36 : Unexpected attribute theme File '/home/mario/Programy/photo_shock/fotoshock-code/src/fotoshock/mainwindow.ui' is not valid make[2]: *** [src/fotoshock/ui_mainwindow.h] Error 1 make[1]: *** [src/fotoshock/CMakeFiles/FotoSHOCK.dir/all] Error 2 make: *** [all] Error 2
Vyvíjať softvér na Archu zaručí že to pôjde len dvoch distribúciach Archu a GentooPřece se nebudu nechávat omezovat pravěkými verzemi SW
Mohol by si pridať do root adresára README.debianDíky, hodím to tam.
Mám tu ďalšiu chybu:Hmm, za to bude bude moct staré Qt. Pokud máš možnost nainstalovat 4.8, tak použij tu. Jinak by mělo pomoct odstranit tagy, které způsobují chyby z ui souboru, nejspíš se ale pak rozbijí ikonky.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.