[ IvanDzGrozni @ 29.02.2008. 20:13 ] @
E ovako, nekako sam uspeo da slike preko VB forme ubacim u tabelu Access baze u polje tipa OLE. Sada pravim neki report uz pomoc ActiveReports, tako sto na njega stavim jednu DAO kontrolu, i jednu OLE kontrolu i to radi ali sa slikama u *.bmp formatu. Sve ostale koje su u JPEG formatu u OLE kontroli na reportu se pojavljuju u vidu ikone fajla sa imenom. Pokusao sam sa kontrolom Image na reportu, ali nisam uspeo, slika se ne ucitava u ovu kontrolu. Kako da resim ovaj problem??? Nesto sam razmisljao da sve slike prebacim u *.bmp format sledecim postupkom
Set pic = LoadPicture("c:\Slika.jpg", 0, 0, 400, 600)
SavePicture pic, "c:\Slika_resized.jpg"
pa da ih onda takve ubacim u bazu iz koje ce se prikazati u OLE kontroli na reportu. Ima li neko bolje resenje???
[ stefanpn @ 02.03.2008. 16:51 ] @
Pa resenje ti je da zajebes te OLE kontrole. Jer su sanse vise 90% da ti to nece raditi na drugom racunaru. A ako vec koristis Access znaci da program koji ce koristiti tu bazu verovatno nije mrezno orijentisan, pa slike mozes jednostavno skladistiti u direktorijumu na disku pored baze, ako neces da bilo ko moze da vidi te slike sem iz programa onda enkriptuj datoteke. A ako ni to nije resenje kako ti zelis onda radi ono sa memo poljem i ubacivanjem slike bajt po bajt. Pozdrav
[ IvanDzGrozni @ 03.03.2008. 11:03 ] @
Razmisljao sam i o tome, ali kako onda da iz memo polja ubacim sliku u image kontrolu. Ovo mi e bitno jer zelim da se slika vidi i u DataReportu, i da je kasnije prebacujem u Word?
Citat:
stefanpn: Pa resenje ti je da zajebes te OLE kontrole. Jer su sanse vise 90% da ti to nece raditi na drugom racunaru. A ako vec koristis Access znaci da program koji ce koristiti tu bazu verovatno nije mrezno orijentisan, pa slike mozes jednostavno skladistiti u direktorijumu na disku pored baze, ako neces da bilo ko moze da vidi te slike sem iz programa onda enkriptuj datoteke. A ako ni to nije resenje kako ti zelis onda radi ono sa memo poljem i ubacivanjem slike bajt po bajt. Pozdrav
[ stefanpn @ 03.03.2008. 20:12 ] @
Pa evo, i nije tako tesko...
Ako se uzme da si vec sve potrebne objekte "iscrtao" po formi i reportu.
Prvo trebas da ucitas sliku sa diska u memoriju(Picture1), najprostije resenje picture1.picture = loadpicture("c:\slika.jpg"). Pa onda ces morati nekako da je procitas i kompresujes jer je prevelika da se snimi kao bitmapa(kakva se nalazi u memoriji).

Moj predlog ti je da je citas sliku i kompresujes red po red.

Code:

for y = 0 to Picture1.Height ' Picture1.ScaleMode = 3(Pixel)
     for x = 0 to Picture1.Width 
          lngColor = Picture1.Point (x,y)
          ' E sad ovde trebas ovu vrednost lngColor koja je long(32-bita) da pretvoris u tri 8-bitna broja (RGB nijanse)
          ' E sad ta tri broja trebas dodati u buffer(string) kao Ascii znakove
     next x
     'E a ovde bi trebao da izvuces neki Api za kompresiju podataka, predlazem ti da koristis ZLIB
     Compress Buffer, tmpString
     'Sad samo dodas tmpString u memo polje: memo = memo + tmpString
next y


Evo je teorija, sad mu ti ovde dodas malo prakse i gotovo....

Modao bi da mi upises neki kredit u about-u
Salim se naravno...

Sto se tice prebacivanja u Word trebalo bi da na http://www.planetsourcecode.com imas neki primer o tome kako da napravis word datoteku od data reporta uz pomoc virtuelnog stampaca.

[Ovu poruku je menjao stefanpn dana 03.03.2008. u 21:31 GMT+1]
[ Aleksandar Ružičić @ 03.03.2008. 23:55 ] @
ne vidim razlog zasto bi ucitavao sa LoadPicture pa citao red po red i kompresovao. moze jednostavno da otvori fajl u binarnom modu, da ucita sve u byte niz, i da onda kompresuje to sa recimo zlib-om ili obicnim zipom (mada je zlib mnogo bolji) i taj kompresovani niz ubaci u bazu. posle procita dekompresuje, napise dekompresovani niz u neki fajl i ucita sliku, ubaci u word fajl ili sta vec treba...
[ stefanpn @ 04.03.2008. 00:31 ] @
Pa prosli put sam nekom ovde to i rekao, ali onda se ispostavilo da ljudi ne umeju da napisu sledece
Code:

open "c:\slika.ext" for binary as #1
      get #1, , a
close #1


Pa sam ja onda shvatio da ce im mozda biti lakse ovako... Sve u svemu ovo je 31 put da neko postavlja isto pitanje: "Kako ubaciti sliku u bazu podataka"...

[Ovu poruku je menjao stefanpn dana 04.03.2008. u 01:42 GMT+1]