Używam NodeJS
po stronie serwera i próbuję zrobić trochę zautomatyzowanego przetwarzania obrazu, aby określić "podstawowy kolor" obrazu.Czy przetwarzanie/analiza obrazu NodeJS jest możliwe?
Oto kroki, co chcę zrobić:
- Take obrazu (na zdalnym serwerze, więc przeszły przez z adresem URL) i uzyskać jego wymiary
- Wpisz wymiary do obliczenia centrum obrazu
- Weź 10px x 50px (WXL) prostokąt wokół punktu centralnego
- Get wartości RGB dla każdego z tych pikseli (500 na obrazie)
- wyjściowa średnia wartość pikseli
Wiem, że takie rzeczy są możliwe w PHP, ale chciałbym użyć węzła jest możliwe. Widziałem samouczki na temat korzystania z Node-imagick
do podstawowego przetwarzania (jak zmiana rozmiaru i kadrowanie), ale nie wiem, od czego zacząć z bardziej zaawansowanych analiz takich jak to.
Pytania
(a) jest to możliwe, z węzła?
(b) Jakie biblioteki pozwolą mi to zrobić?
Być może chcesz sprawdzić to odpowiedź: http://stackoverflow.com/a/10717592/480807 - UWAGA: Gorąco doradzać wyładowywanie tego typu działań na rzecz pracownika tle dowolnego typu siła węzła polega na asynchronicznej obsłudze wielu operacji blokowania IO, a nie blokowaniu/intensywnym procesom CPU (takim jak manipulowanie obrazem). Mając to na uwadze, GM wykonuje tę pracę z wątkami roboczymi (nie blokując pętli zdarzeń). –
Interesujące. czy możesz wyjaśnić, co masz na myśli przez "pracownika w tle"? Przypuszczam, że mogę używać PHP do tego bez zbytniego wysiłku, właśnie budowałem wszystko inne w Node, więc chciałem zachować wszystko w tym samym miejscu. Ale na pewno chciałbym zrobić to, co jest najszybsze/najlżejsze obciążenie na moim serwerze! – Jascination
Zazwyczaj w aplikacji internetowej masz "serwer (y) aplikacji", które mają za zadanie szybko obsłużyć większość żądań użytkowników. W przypadku bardzo obciążających procesor lub czasochłonnych operacji, takich jak długie żądania API, manipulowanie/przetwarzanie obrazu, obliczanie sekwencji fibonacci (żart), zadanie jest wprowadzane do "kolejki" zadań, które są następnie pobierane jeden po drugim z pracownik działający w tle i ukończony bez obciążania serwerów aplikacji. Sprawdź "biegacz" - dobrze mi to służyło. –