Page 1 of 2

Kuvan muuttaminen CB:n koodiksi.

Posted: Wed Feb 13, 2008 7:30 pm
by Eräs cb koodaaja
Niin kuin otsikko jo kertookin funktio muuttaa kuvan cb:n koodiksi. Hyöty lienee lähinnä siinä, että kuvat saa pakattua suoraan exee(kuka tahansa ei saa niitä käyttöönsä). Soveltuu HYVIN vain pieniin kuviin, koska suuret kuvat aiheuttavat latausnopeuden huimaa kasvua.

Code: Select all

Function Kuvamuunnin(in$,out$)
    file = OpenToWrite(out$) 
    img  = LoadImage(in$)

    Lock Image(img)
    For a = 1 To ImageWidth(img)
        For b = 1 To ImageHeight(img)
            PickImageColor2 img,a,b
            WriteLine file,"Color "+getRGB(RED)+","+getRGB(GREEN)+","+getRGB(BLUE)+": Dot "+a+","+b
        Next b
    Next a
    Unlock Image(img)
    CloseFile file
EndFunction

Kuvamuunnin("media\guy.bmp","kuva.cb")
Koodissa myös esimerkki.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Wed Feb 13, 2008 8:07 pm
by Vouldenhaul
En oo tota hommaa testannut, tai mittään, mutta tietenkin nyt kaverin koodii pitää tulla kommentoimaa... Testaan tota sit, kun ehdin, jos ehdin. Luottakaa Erääseen CB koodaajaan, mukava tyyppi, koodaustaidoista en tiiä, mutta ainakin koodaa mua paremmin. :? Se saa esitellä tän systeeminsä mulle joku päivä, tai vaik nyt meses, tuun sen jälkee ylistää tätä lissää... :P

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Wed Feb 13, 2008 8:09 pm
by otto90x
Ääh, tää on kyllä aika turha ja armottoman hidas. Voihan sitä cbresourceakin käyttää.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Thu Feb 14, 2008 7:14 pm
by M.R
Voisi yrittää pakata sitä ohjelman sisäiseen Data-listaan/listoihin.Ja mustat pikselit voisi jättää laittamatta.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Thu Feb 14, 2008 9:05 pm
by Eräs cb koodaaja
Tulen tuota vielä laittamaan ja mustan värin voi kyllä jättää pois. Laitan päivityksiä kunhan kerkeän.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Sat Feb 16, 2008 9:51 am
by atomimalli
Pienenä aikaa ja vaivaa säästävänä vinkkinä kerron että getpixel2 on keksitty. Myös sen että vanhoilta foorumeilta löytyy näitä jo useiden vuosien takaa.
Lukitseminen ei tuossa tapauksessa taida auttaa yhtään mitään :o.

Datan käyttöön kannattaa myös tutustua.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Sat Feb 16, 2008 9:52 pm
by SPuntte
Tämä on WANHA juttu. Vanhoilta foorumeilta löytyy näitä useampikin kipale. Tosiaan, PutPixel2'a ja GetPixel2'a käyttämällä tästä saa huomattavasti nopeamman. Tosin on se silti suurilla kuvilla tuskallisen hidas.

Offtopic:
atomimalli wrote:Datan käyttöön kannattaa myös tutustua.

Tietääkseni nykyisen CBn Data-systeemi bugaa. Kokeilepa ajaa manuaalin oma esimerkki aiheesta..

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Sat Feb 16, 2008 10:20 pm
by Koodiapina
SPuntte wrote:Tietääkseni nykyisen CBn Data-systeemi bugaa. Kokeilepa ajaa manuaalin oma esimerkki aiheesta..
OFFTOPIC: Ei ehkä kannata kokeilla. Itselläni meni CB ihan sekaisin. Eka CB meni lukkoon ja sitten kun avasin uudestaan niin se luulee että edellinen ohjelma on päällä eikä suostu tulkkaamaan vaikka tehtävienhallinnassa ei näy mitään cb ohjelmaa.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 18, 2008 4:39 pm
by M.R
Grandi wrote:
SPuntte wrote:Tietääkseni nykyisen CBn Data-systeemi bugaa. Kokeilepa ajaa manuaalin oma esimerkki aiheesta..
OFFTOPIC: Ei ehkä kannata kokeilla. Itselläni meni CB ihan sekaisin. Eka CB meni lukkoon ja sitten kun avasin uudestaan niin se luulee että edellinen ohjelma on päällä eikä suostu tulkkaamaan vaikka tehtävienhallinnassa ei näy mitään cb ohjelmaa.
Offtopic:
Se kyllä toimii mutta esimerkissä on virhe(en tajua mistä johtuu).
Tässäpä esimerkki datan käytöstä:

Code: Select all

Restore testi
Print Read()
WaitKey
End

testi:
Data "Toimiihan tämä CB:n Data."

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 18, 2008 6:30 pm
by tuhoojabotti
kokeilin ja toimi mutta kun yritin korjata cb:n esimerkin niin sainkin 6X6 kartan toimimaan sekä 3 eri väriä :D datan arvon mukaan mutta aina tuli mav esciä painettaessa ja windows error... en ainakaan peliäni luottaisi CB:n datan varaan...

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 18, 2008 7:10 pm
by koodaaja
Itsekin pohdin tuota dataa pitkästä aikaa ja jostain syystä kannettavallani se toimii mainiosti, muttei inahdakaan suurimmalla osalla muista koneista. O.o Mikä lie konekohtainen ihme, mutta pääsääntöisesti sitä ei pidä käyttää, niin harvalla toimii. (Ellei exeksi kääntäminen muuta tilannetta? en ole kokeillut..)

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Wed Feb 20, 2008 5:37 pm
by Eräs cb koodaaja
PickImageColor2 vaatii lukituksen ja on hieman PickImageColoria nopeampi. Voisin yrittää parannella tätä vielä, mutta tuskin kukaan tästä paljoa hyötyy.
EDIT:

Mulla data toimii VÄLILLÄ kun ottaa virheilmotukset pois ERRORS OFF komennolla


Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Sat Feb 23, 2008 10:26 am
by elmo123
Plääh, tällainen on jo tehty, vanhoilla foorumeilla taisi olla. Include-koodista tulee liian pitkä. Eikö voisi ensin tehdä pienen funktion, joka lukee merkkijonosta
jokaisen pikseliarvon erikseen. Ensin otetaan kuvan leveys ja korkeus(64x64|) ja pystyviiva erottimena. Seuraavaksi tehdään tyhjä kuva eli joo = MakeImage(w, h). Sitten puskuriksi Lock Image(joo) ja

Code: Select all

count = 1
For x = 0 To w 
For y = 0 To h
PutPixel2 x, y, Int(GetWord(stri$), counter, "|")
count+1
Next y
Next x
Unlock Image(joo)
Return joo
Sitten teet ohjelman, jossa näkyy tyhjä lista, johon lataat kuvatiedostoja ja klikkaat vain Pack ja se pakkaa kuvatiedostot. (kuva1 = ExtractImage(wxh|ekapiksel|tokapiksel|kolmaspiksel|jne.|jne...))

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 25, 2008 2:07 pm
by MaGetzUb
elmo123 wrote:Plääh, tällainen on jo tehty, vanhoilla foorumeilla taisi olla. Include-koodista tulee liian pitkä. Eikö voisi ensin tehdä pienen funktion, joka lukee merkkijonosta
jokaisen pikseliarvon erikseen. Ensin otetaan kuvan leveys ja korkeus(64x64|) ja pystyviiva erottimena. Seuraavaksi tehdään tyhjä kuva eli joo = MakeImage(w, h). Sitten puskuriksi Lock Image(joo) ja
Tuostahan jo sanottiinkin että näitä on ollut vanhoill foorumeilla iha hulluna. Minä en kyllä löydä mitää käyttöä tollaaselle väkerrykselle, mieluummin teen oman kuva formaatin. ;)

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 25, 2008 2:34 pm
by koodaaja
programmer of DSG wrote:
elmo123 wrote:Plääh, tällainen on jo tehty, vanhoilla foorumeilla taisi olla. Include-koodista tulee liian pitkä. Eikö voisi ensin tehdä pienen funktion, joka lukee merkkijonosta
jokaisen pikseliarvon erikseen. Ensin otetaan kuvan leveys ja korkeus(64x64|) ja pystyviiva erottimena. Seuraavaksi tehdään tyhjä kuva eli joo = MakeImage(w, h). Sitten puskuriksi Lock Image(joo) ja
Tuostahan jo sanottiinkin että näitä on ollut vanhoill foorumeilla iha hulluna. Minä en kyllä löydä mitää käyttöä tollaaselle väkerrykselle, mieluummin teen oman kuva formaatin. ;)
Mutta vaikka olisi kuinka hieno kuvaformaatti, et saa kuvia exeen sisälle, ja se on nimenomaan tämän idea; ei tarvitse erillisiä kuvia.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 25, 2008 5:05 pm
by SPuntte
koodaaja wrote:Mutta vaikka olisi kuinka hieno kuvaformaatti, et saa kuvia exeen sisälle, ja se on nimenomaan tämän idea; ei tarvitse erillisiä kuvia.
Niinpä, ja järkevän kokoisilla (pienillä) ja kohtuullisella määräällä kuvia tämä on vielä ihan tarkoituksenmukaista, ei tarvitse miettiä pakettia kootessa, että mitäs kaikkea nyt tarvittiinkaan. Tosin kopioinninestossa tämä ei juuri auta, kun tämäntasoisessa pelissä ei tule mitään shadereita päälle 'pilaamaan' grafiikkaa. Eli ihan PrintScreenillä ja pienellä muokkauksella onnistuu. Tosin animaation kopiointi on vähän työläämpää mutta silti. Huijauksenestossa tämä puolestaan toimii hyvin.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 25, 2008 6:37 pm
by MaGetzUb
Juu, mutta tekee sellaisen kuva formaatin, mitä ei ihan joka Sälli/Jehu/Jamppa saa muokattua.
EDIT:

Niin ja tohon tarttee aivan hirveen kokoosen taulukon, että minä en ainakaan suosittele, tehkää te muut miten tahdotte, mutta mun aika ei riitä tohon; koska pitää saada jotain aikaiseksi.


Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 25, 2008 6:41 pm
by Eräs cb koodaaja
Milläs semmosen teet? Jos julkaisee lähdekoodin niin kaikki näkee miten se on tehty ja jos ei niin kukaan ei pysty käyttämään. Jo pelkästään funktiosta, joka sen lataa, pystyy lukemaan formaatin rakenteen.

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 25, 2008 7:39 pm
by koodaaja
Eräs cb koodaaja wrote:Milläs semmosen teet? Jos julkaisee lähdekoodin niin kaikki näkee miten se on tehty ja jos ei niin kukaan ei pysty käyttämään. Jo pelkästään funktiosta, joka sen lataa, pystyy lukemaan formaatin rakenteen.
Ei julkaise :p

Mutta jos DATA:n saa pelittämään, niin hyvin toimii. Ja ainahan voi käyttää merkkijonoa taulukon sijaan, toimiihan se niinkin. Joskin.. no jaa, kikkailuksi se menee joka tapauksessa. Ja tosiaan, pieniin projekteihin (ei montaa kymmentä kuvaa, etenkään isoja) tämä sopii, muttei kovin hyvin muuhun. Ja totta, tämä on CB:llä ainoastaan kätevyyttä lisäävä, ei kopioinnin estämistä poistava kikka.

EDIT: tuhoojabotti, erittäin hyvä huomio : D

Re: Kuvan muuttaminen CB:n koodiksi.

Posted: Mon Feb 25, 2008 7:41 pm
by tuhoojabotti
Eräs cb koodaaja wrote:Soveltuu HYVIN vain pieniin kuviin, koska suuret kuvat aiheuttavat latausnopeuden huimaa kasvua.
tarkoitat varmaan latausajan huimaa kasvua ;) anteeksi pilkunviilaus :P