Lenne egy program ,amiben kérném az elinduláshoz egy kis segítségetek.
A program internetről tőltene le jpeg képet, megadott időközönként, pl. 100ms-ként. Nem nagyon tudom hogy honnan is kezdjek hozzá. Valaki valami segítséggel egy pár infóval megdobhatna. Ha megoldható GTK-ban menne a dolog.
Válaszokat előre is köszi!
- 1629 megtekintés
Hozzászólások
Azért ennyire ne tolongjatok. :)
Nem a program megirására gondoltam, hanem valami infó hogy mégis milyen függvények tájékán érdemes turkálni hogy célhoz érjek.
- A hozzászóláshoz be kell jelentkezni
Socket programozás, meg vmi iesmi kell neked sztem: http://library.gnome.org/devel/gtk/2.12/GtkImage.html
aztán a kettőt tedd össze ;] Amúgy mileszez? Valami webkamerás téma?
- A hozzászóláshoz be kell jelentkezni
Igen valami webkamerás dolog. Jó a megérzés, csak mondjuk a webkamerától egy kicsit komolyabb dologra kell.
Azt már el tudtam érni hogy megjelenjen egy valami.jpg ami a gépemen van.
Csakhogy nekem az kellene hogy a http://user:pass@192.168.1.111/valami.jpg legyen megjelenítve.
- A hozzászóláshoz be kell jelentkezni
Háth az úgy elég lassú ugye, hogy mindig leírod vinyóra, aztán onnan megjeleníted, főleg az ilyen gyors frissítés mellett.. Próbáld felolvasni vmi bufferbe, aztán van ilyesmi a linken amit adtam: gtk_image_set_from_pixbuf(GtkImage *image,GdkPixbuf *pixbuf); Vagy valami hasonlót keress
- A hozzászóláshoz be kell jelentkezni
Én is gondoltam egy "temp" fájlra, de ez sok kamerával menne, és állandóan kerregtetné a vinyót igy.
A másik ami igy most eszembe jutott, hogy valahogy letöltöm a jpeg-et és ezt memóriában tárolom, majd innen használom. Valahogy meg utánnanézek hogy is tudnám megszerezni azt a bizonyos fájlt a hálózaton keresztül, HTTP GET, stb...
- A hozzászóláshoz be kell jelentkezni
Ebből tanultam énis a socketprogramozás alapjait: http://people.inf.elte.hu/triasz/progi/bgnet.html
- A hozzászóláshoz be kell jelentkezni
Kössssz az infókat.
Jó anyagnak tűnik.
- A hozzászóláshoz be kell jelentkezni
Ha Gtk-ban csinálod, akkor miután létrejött a kapcsolat, érdemes GIOChannel-t csinálni a socketből, es a kép betöltéséhez használhatsz GdkPixbufLoader-t.
Vagy használhatod a libghttp-t is, és akkor nem kell socket kezeléssel bajlódni elvileg, bár én ezt még nem próbáltam:
http://www.fifi.org/doc/libghttp1/ghttp.html
- A hozzászóláshoz be kell jelentkezni
Vagy curl-t, httpre.
"Tedd vagy ne tedd, de ne probáld"
- A hozzászóláshoz be kell jelentkezni
Vagy GNet, és ő még "szereti" is a GLib -et. :)
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
- A hozzászóláshoz be kell jelentkezni
Http protokollt az elejétől nem érdemes megírni kézzel. Pl van ez a Javás cucc (Hálózat lesz a szűk keresztmetszet, nem a gép szerintem):
http://jakarta.apache.org/httpcomponents/httpclient-3.x/
Az alap get hívás egyszerű, arra van az oldalon tutorial. A beléptetés nekem már nem ment könnyen, meg az alapértelmezett USER_AGENT-tel nem engedte be a weboldal, ezért én kb ezzel a kódrészlettel léptetem be a felhasználómat.
hc=new HttpClient();
HttpClientParams hcp=hc.getParams();
hcp.setParameter(HttpMethodParams.USER_AGENT, "Mozilla");
hcp.setParameter(HttpClientParams.HTTP_CONTENT_CHARSET, "UTF-8");
hc.setParams(hcp);
{
PostMethod method=new PostMethod(belepooldal urlje);
method.addParameter("username",user);
method.addParameter("password",pass);
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
hc.executeMethod(method);
}
Amúgy ha admin jogod van a futtató gépen, akkor én lehet, hogy inkább csinálnék egy memória fájlrendszert és abba dolgoznék. Így standard eszközöket tudsz használni, mégse kerreg a vinyód.
Ha a HttpClient osztállyal Javában csinálod, akkor a sessiont fenntarthatod sokáig, így nem kell folyton úrja belépni, amit pl a wget megtenne.
- A hozzászóláshoz be kell jelentkezni
Erre találták ki a server-push -t a cambozola java applet -el megy.
- A hozzászóláshoz be kell jelentkezni
Persze ez a kép webszerverről való letöltésére használható.
- A hozzászóláshoz be kell jelentkezni
Mindenképpen "rendes" program kell, nem valami java, ami gép erőforrásainak javát felzabálja. És vannak egyedi igények. De szerintem msn, ezt beszéltem is veled.
- A hozzászóláshoz be kell jelentkezni
Én ezzel vitatkoznék. Szerintem egy Java program is rendes program. Egy yól megírt java program nem erőforrászabáló, egy rosszul megírt az. Ellenben a java tartalmaz beépített támogatást hálózaton keresztüli képek megjelenítésére winyóra töltés nélkül. Nativan.
- A hozzászóláshoz be kell jelentkezni
Végülis odáig eljutottam hogy átmegyek az authentikáción, HTTP-vel letöltöm a jpeg fájlomat. Egy string-ként át tudnám adni akárminek. Pl. most valóban egy fájlt készit a programom.
A JPG megjelenítése is meg, csak annyi a gond vele hogy csak fájlból akarja felszivni.
Milyen megoldással lehet a fájlnyitogatás helyett adni neki egy memóriacímet hogy onnan olvassa a tartalmat ne pedig a fájlból?
Másik problémám hogy már talán az összes létező függvényt kipróbáltam, de nem tudtam frissíteni az egyszer már betöltött képet.
Valahogy igy töltődik be...:
image1 = gtk_image_new_from_file ("/ramdisk/proba0.jpg");
gtk_widget_set_name (image1, "image1");
gtk_widget_show (image1);
Mivel lehet frissítésre birni???
UI.: mostmár jó álmos is vagyok, és lehet hogy holnap napközben nem lesz áram a környékemen, mert valami trafót cserélgetnek. Szóval a tippeket várom, amint tudom meg is nézem, hogy megy e.
- A hozzászóláshoz be kell jelentkezni
Én itt néznék körül:
http://developer.gimp.org/api/2.0/gtk/GtkImage.html#gtk-image-new-from-…
Amugy a forrás publikus?
- A hozzászóláshoz be kell jelentkezni
Nem "publikus" lesz, nem lesz fent xy oldalon egyenlőre, de akinek kell annak odaadom. Főleg akikkel beszélgettem az ügyben.
- A hozzászóláshoz be kell jelentkezni