Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Kuvan lataus muuttujasta, VB5

setä [13.07.2006 12:03:55]

#

Onnistuuko kuvan lataus muuttujasta Imageen tai PictureBoxiin palauttamatta muuttujaa ensin tiedostoon ja sitten LoadPicturella. Kuva on viety muuttujaan näin:

Open "kuva.jpg" For Binary As 1
muuttuja = Input(LOF(1), 1)
Close

Merri [14.07.2006 18:38:59]

#

Dim Kuva As IPictureDisp

Private Sub Form_Load()
    Set Kuva = LoadPicture("kuva.jpg")
End Sub
Private Sub Command1_Click()
    Set Me.Picture = Kuva
End Sub

setä [14.07.2006 23:15:56]

#

Kiitoksia, mutta tuohon kuvaan ei ilmeisesti voi tallentaa useita kuvia. Kyse on parin kolmen sadan kuvan joukosta, jotka siirretään serveriltä yhtenä binääritiedostona, jossa kuvat ovat peräkkäin tietueina, johon sisältyy myös alkuperäisen tiedoston nimi. Nyt joudun purkamaan binääritiedoston takaisin kuvatiedostoiksi ja Imageen, josta edelleen PaintPicturella pictureBoxiin. Vai voiko tuo Kuva olla tiedoston tietueena. Täytyypä kokeilla.
EDIT Harmi, ei onnistu!

Merri [15.07.2006 01:58:15]

#

Mikset säilytä dataa yhdessä pötkössä arkistotiedostona ja pura sitä käyttöön sitten aina vain tarpeen mukaan? Sitten voit käyttää tuota yksinkertaista koodinpätkää kuvan lataamiseen (tietysti kunhan ensin purat yksittäisen kuvatiedoston arkistosta). Täysimittaisia kuvia ei kuitenkaan kannata kahtaa sataa pitää muistissa yhtä aikaa puhtaassa RGBA-muodossa, pakattuna sellainen määrä vielä jokseenkin menettelee.

setä [15.07.2006 09:10:00]

#

Kuvien siirtoa varten kokoan ne "arkistoon" eli binääritiedostoksi, joka on kooltaan jokseenkin sama kuin jpg-kuvat zipattuna. Zippaus ja Unzippaus ei kuitenkaan onnistu VB:llä varsinkaan jos koneella ei ole zippausohjelmaa. Tästä binääritiedostosta on tarkoitus palauttaa näkyvään muotoon kerrallaan muutama kuva. Binääritiedosto on noin 1,7 Mt ja jpg-kuvat (noin 10 kt kukin) vievät levytilaa yli 4 Mt. Kuvien määrä tulee vielä kasvamaan. Kuvien näyttöä ohjataan hiirellä liikuttamalla sitä kyseisen henkilön nimen päällä Labelissa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta