[ Proko @ 23.05.2009. 10:19 ] @
Uradio sam jednostavan program za video nadzor za jednu analognu kameru. Program radi tako što se svakih 0.5 sekundi osvežava bmp slika. Zatim se ta slika konvertuje u jpg, ali opet u jednu sliku sa istim imenom "slika.jpg". Kada se dobije komanda od IR senzora prave se kopije od "slika.jpg" i dodeljuje im se ime tekućeg vremena i datuma. Sve to radi odlično i te slike ne zauzimaju puno prostora, ali...
Za kratko vreme (manje od 1 sat) "Commit Charge" se napuni do 1.8G i ukoči se računar...
Do sada sam u istom tom programu koristio program "Dorgem", koji radi konverziju i to se nije događalo. Izbacio sam ga zbog nekih stvari, koje mi se nisu sviđale, i program koji sam napravio je mnogo jednostavniji...
Postoji li neki način da se računaru saopšti da ne pravi backup nečega što nije potrebno...
Inače, cod koji koristim za konverziju je sledeći:
Code:

Private Sub Timer1_Timer()    't=500
    CompressQuality = 80
    BmpToJpeg App.Path & "\slika.bmp", App.Path & "\slika.jpg", CompressQuality
End Sub

Probao sam i neki drugi kod, pa i da produžavam vreme tajmeru, čak do 5 sekundi, ali zauzetost memorije se stalno povećava...
[ Proko @ 25.05.2009. 23:59 ] @
Ili da preformulišem pitanje...kako stalno raditi konverziju slika bmp u jpg (pa makar to bila i jedna te ista slika), a da se ne povećava zauzetost memorije računara?
[ dzigilibonglica @ 26.05.2009. 13:01 ] @
Mozda da ubacis neku ActiveX freeware kontrolu koja snima u Avi ili wmv, pa da onda kada hoces da vidis neki frame ucitas video fajl i pomeris na poziciju za koju ti treba frejm.

Inace to sa slikama ne znam kako.

Ali probaj nista te ne kosta, izguglaj malo na sajtovima sa ActiveX/OCX kontrolama, one rade skoro u svim jezicima, a ima ih dobrih.
[ stefanpn @ 26.05.2009. 14:36 ] @
Koristi GDI+ biblioteku, imaš je na svakom računaru koji ima Windows XP i noviji.

Šaljem ti primer sa GDI+ klasom i tlb datotekom u attachmentu.

Može da snima i Gif, Png, Tiff... :)
[ Proko @ 26.05.2009. 18:58 ] @
Hvala, to je to.
Ceo program mi je inače mnogo kompleksniji, jer omogućava i spori i ubrzani pregled dnevnih, kao i slika iz bilo kojeg prošlog perioda. Za godinu dana slike su "teške" samo 2 GB, a ima ih svakog dana od nekoliko stotina, do nekoliko hiljada.
Za sada sam ostavio ovakav kod, Pic sam stavio kao nevidljiv, jer mi nije potrebna ta slika (desno, mala slika je "živa slika", a velika je konvertovana bmp u jpg, ali se ona menja, ako se koristi pregled arhive.
Ako je moguće, zamenio bih Pic sa nekom promenljivom, mada dobro to radi i ovako, i što je najvažnije, ne raste zauzetost memorije računara. Još jednom, hvala ti.
Code:

Private Sub Timer1_Timer()
 Dim gdip As New cGdiPlus
    Pic.Picture = LoadPicture
    Pic.Picture = LoadPicture("D:\Kamera\Slika.bmp")
    gdip.PictureBoxToFile Pic, "D:\Kamera\Slika.jpg"
End Sub





[Ovu poruku je menjao Proko dana 26.05.2009. u 20:10 GMT+1]
[ stefanpn @ 26.05.2009. 23:51 ] @
Može naravno, bilo koji PictureBox.
[ petkochb @ 12.06.2009. 15:23 ] @
Pozdrav. Ljudi ako je moguce da mi neko pomogne. Radi se o tome da sam ja hteo da koristim ovaj predlog da bih smanjio velicinu snimljene slike na racunar. Skinuo sam primer i uvrsto clasmodul u moj projekat, medjutim javlja se greska u deklaraciji "Dim tGuids() As CLSID ' Array of GUIDs for codecs". Javlja se greska "User-defined type not defined". Molim Vas za pomoc.
[ stefanpn @ 14.06.2009. 02:30 ] @
Nisi dodao referencu na "gdi+.tlb" datoteku.

Project -> References -> Browse, pa izaberi putanju do datoteke.

Uradi to i biće sve ok.
[ petkochb @ 15.06.2009. 11:27 ] @
Hvala Stefanpn-e na odgovoru. To je resilo problem. Hvala jos jednom puno
[ pura moca @ 17.11.2009. 17:35 ] @
Umesto boxa za sliku koristi promenljivu ovako:


Dim slika as stdPicture

slika.picture = LoadPicture("D:\Kamera\Slika.bmp")


Nadam se da me sećanje poslužilo, već dugo nemam instaliran Visual Studio.