Strona 1 z 1

Zaciemnianie fragmentu zdjęcia

: 17 mar 2014 14:19
autor: Brad PID
Cześć,

Zrobiłem funkcję (załączniki), w której za pomocą Rectangle i warości od 0-1 zmieniam intensywność fragmentu zdjęcia. Problem polega na tym, że za każdym razem potrzebuję tymczasowego zdjęcia aby wykonać operacje. Muszę je za każdym razem tworzyć i usuwać. Pytanie:
a) czy można to zrobić prościej - może są już gotowe metody
b) jeżeli nie a) to jak radzić sobie z referencją do zdjęcia aby za każdym razem nie tworzyć nowej - Mogę utworzyć FGV, która będzie się sama inicjalizować ale jak i kiedy usunąć to zdjęcie z pamięci? Normalnie LV samo dba o zarządzanie pamięcią ale tutaj już to nie działa.

Chciałbym po prostu używać tej funkcji i nie martwić się o tworzenie lub zwalnianie pamięci.

Re: Zaciemnianie fragmentu zdjęcia

: 18 mar 2014 17:42
autor: smiga
Nie usuwaj - trzymaj referencję i nadpisuj zdjęcia.
Usuniesz jak już Ci nie będzie potrzebne, czyli może dopiero przy wyjściu z programu.
Podsumowując, pierwszy i ostatni bloczek proponuję wywołać raz, poza tym VI'em.

Re: Zaciemnianie fragmentu zdjęcia

: 21 mar 2014 11:12
autor: Brad PID
No właśnie chciałbym tego uniknąć - przy takim rozwiązaniu modularność nie istnieje. Za każdym razem kiedy chcę użyć funkcji muszę myśleć o tym aby stworzyć do niej dodatkowe zdjęcie na początku, a później usuwać.

Sprawdziłem czas wykonywania funkcji z usuwaniem referencji i bez- wartości rzędu mikrosekund ( porównując z algorytmami wizyjnymi, nie ma co sobie tym głowy zaprzątać - tworzyć i usuwać). Dodatkowo zdjęcie tworzę z nazwą zawierającą call chain. Dzięki temu nie muszę się martwić, że przez przypadek utworzę zdjęcie o tej samej nazwie i w tej funkcji je usunę.

Re: Zaciemnianie fragmentu zdjęcia

: 21 mar 2014 12:05
autor: smiga
No to nie ma problemu :)
Oczywiście tę referencję możesz sobie tworzyć po wywołaniu tej funkcji, ale raz (np. we wspomnianej przez Ciebie FGV), a później tylko z niej korzystać...i "modularność" dalej będzie zachowana :)