Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Kuvista

Grey [21.07.2002 22:14:43]

#

Teen tässä siihen GUIhini pieniä apuohjelmia, ja, noh, olen tässä kuvankäsittelyohjelman kimpussa. Käytän ohjelmassa 640x350 kuvapisteen resoluutiota ja olen varannut 150 tuosta työkaluja varten, eli ohjelmalla saa aikaan 620x200 kokoisia kuvia. Ja 16 värillä :-P. Vähän? Niin, niin on, mutta teenhän vasta ekaa piirustusohjelmaani. Eli siis.

Kuvan tallennus ja lataaminen. Eli miten saan napattua näytöltä leveyssuunnassa 640 ja pituussuunnassa 200 pikseliä? Niin ja kaiken lisäksi, kun haluan käyttää omaa formaattia, se antaisi kullekin värille oman arvonsa. Sellaisen että kun kuva ladataan, ohjelma tulkitsee sen sitten ja silleen.

Voisikohan kuvapakkaus olla mahdollinen? Sillain että ohjelma laskee yhtä jaksoisten väripikseleiden määrän ja laskee ne yhdeksi jonoksi. Esim. pitkä valkoinen viiva tallentuu siis vain muutamaksi merkiksi. Ymmärrättekö? Ette, hyvä :-)

Jos ette osaa auttaa tässä hommassa, niin voitte varmaan auttaa erikoistehosteissa? Sellaisia, jotka toimivat 16 värin kanssa. Ja vaikuttavat sitten vain 200 ensimmäiseen pikseliin korkeussuunnassa. Toivon muuten sitten että koodi ei ole kovin pitkää, tai on SUBissa. Ihan selvyyden vuoksi vain. Vaikeaako? Noh, sanon mieluummin että kiintoisaa ja haastavaa. Että kun toiset tarvitsevat 16,7 miljoonaa väriä kuvansa käsittelyyn, me selviämme 16 värillä. Että silleen...

-Grey-

Pekka Kauppila [22.07.2002 00:06:40]

#

Eihän tuossa ole muuta kuin luet kuvan pikseli pikselilta esim. vähän tuohon tyyliin.

For y = 0 To 199
For x = 0 To 619
Vari = Point(x,y)
Print #1, Vari
Next x
Next y

ghostdog [22.07.2002 00:38:54]

#

Kyllä se kuvanpakkaus onnistuu vaikka RLE koodauksella...
Tässä tapauksessa vois olla vaikka näin:
Jos yhden värin tallentamiseen käytetään 8-bittiä niin luetaan siitä ruudulta pikseli sitten pistetään sen väri muistiin sitten jos seuraava pikseli on samanvärinen niin korotetaan laskuria ja sitten jos seuraava on samanvärinen niin laskuria korotetaan jne... sitten ku väri vaihtuu pistetään tiedostoon kaks tavua: (jos laskuri on yksi niin laitetaan pelkästään yksi tavu joka on värin arvo) ensin: 15 + laskuri sitten väriarvo. Ja sitten kun tiedostoa luetaan se luetaan näin: luetaan tavu jos se on suurempi kuin 15 niin luetaan seuraava tavu ja sitä toistetaan "ensimmäinen tavu" - 15 kertaa... siis jotakuinkin noin...

Ja voithan laittaa värit 4-bittisinä eli yks tavu sisältää kahden pikselin värit, mutta on varmasti vaikeampi toteuttaa kuin RLE pakkaus...

Grey [22.07.2002 22:42:04]

#

Testasin ja havaitsin tallennuksen toimivan. Sitten kun vähän aikaa sähläsin koodin kanssa. Nyt siis pitäisi keksiä se kuvan lataamisen ja pakkauksen koodi. Lopputulos kun oli 606 Kt tiedosto, kuten arvelinkin :-P

-Grey-

Pekka Kauppila [23.07.2002 17:22:43]

#

Käytä vaikka tuota hieman apuna tuossa.

https://www.ohjelmointiputka.net/koodivinkit/23605-qb-kahden-värin-pakkaaminen-yhteen-tavuun

Pekka Kauppila [23.07.2002 17:23:21]

#

Siis tuota = https://www.ohjelmointiputka.net/koodivinkit/23605-qb-kahden-värin-pakkaaminen-yhteen-tavuun

Vastaus

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

Tietoa sivustosta