Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Sisältö DATA-lauseisiin bittikartasta

Kipperi [03.06.2007 18:15:41]

#

Onko olemassa jotain apuohjelmaa, keinoa tms., jolla esim. paintilla luodusta bittikartasta saataisiin väritiedot vaikka tekstitiedostoon, josta ne voisi sitten siirtää omaan ohjelmaan data lauseisiin. On nimittäin äärimmäisen turhauttavaa piirtää(tai qb:n tapauksessa kirjoittaa) suuria spritejä pikseli kerrallaan...

Antti Laaksonen [03.06.2007 18:37:02]

#

Tällaisen ohjelman voi tehdä melko helposti itsekin. Koodivinkeissä on QB:lle BMP-kuvan näyttäjä, ja tästä on lyhyt matka ohjelmaan, joka lukee kuvan näyttämisen jälkeen pikselien värit POINT-funktiolla ja kirjoittaa ne tekstitiedostoon.

sqwiik [03.06.2007 20:28:07]

#

Toinen vaihtoehto on käyttää QB:n omia GET/PUT-funktioita kuvan tallentamiseen DATA-lauseiden ja pikseli kerrallaan piirron sijaan.

Sami [03.06.2007 23:52:36]

#

Minkä takia tehdä asiat turhan hankalasti DATA-lauseiden kautta? Kun voisit suoraan lukea tuon bmp-tiedoston muistiin (tuota koodivinkin lukukoodia hieman soveltamalla) ja piirtää kuvan sieltä.

Kipperi [04.06.2007 22:56:31]

#

Tulee vain siistimpää jälkeä jos ei tarvitse jättää useita bmp-tiedostoja lojumaan turhanpäiten, kun kerran saa datoilla saman homman hoitumaan itse ohjelman sisällä, ilman ulkoisia tiedostoja...

E.K.Virtanen [05.06.2007 20:54:17]

#

Hieman off topic...
Itse asiassa olen täysin eri mieltä tuossa suhteessa.
Erillinen kuvatiedosto on helppo vaihtaa vaikka jälkeenpäin ilman että koko ohjelmaa tarvitsee erikseen kääntää.

Järjevällä nimeämisellä ja hakemistojen käytöllä lopputulos on selvempi kuin yksi iso tiedosto joka pitää sisällään kaiken.
Toisaalta jos kuvatiedostosta kirjoittaa data lauseisiin joka pisteen värin vaikkapa kokonaislukuna niin tuloksena on 2 tai jopa 3 kertaa isompi määrä dataa kuin esim. kookkaiksi haukutut .bmp tiedostot.

' FreeBASIC sorsa mutta lähes sama kuin qb:lla.

DIM AS Integer CounterX, CounterY

Screen 19, 16
BLOAD "taivas.bmp"

Open "taivas.dat"  For Output As #1
For CounterX = 0 TO 799
	For CounterY = 0 TO 599
		Print #1, POINT(CounterX, CounterY)
	Next CounterY
Next CounterX

Tuloksena 4 megaa suuri tiedosto, 1.4MB kokoisesta .bmp tiedostosta. QB:lla leikkiessä tulee äkkiä kääntäjän rajat vastaan vaikka kuvien koko olisi vain murto-osa esimerkki kuvasta.

taivas.bmp @ http://www.geocities.com/roope00/taivas.bmp

Vastaus

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

Tietoa sivustosta