olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
Tyhmät kysymykset (I/2010)
Re: Tyhmät kysymykset (I/2010)
Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?
EDIT:
Re: Tyhmät kysymykset (I/2010)
GetPixel, GetPixel2, PickColorDJ-Nerd wrote:Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?EDIT:olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
On valinnan varaa, vai onko
Re: Tyhmät kysymykset (I/2010)
PickColor ja GetRGBDJ-Nerd wrote:Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?EDIT:olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
Re: Tyhmät kysymykset (I/2010)
DJ-Nerd wrote:Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?EDIT:olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
Code: Select all
Lock SCREEN()
pikseli = GetPixel2 x, y
Unlock SCREEN()
Re: Tyhmät kysymykset (I/2010)
Miten saan sijoitettua hahmon pelikentän sisälle (Rajattu Hit-kerroksella) heti ohjelman alkaessa? Olen yrittänyt positionobjectia, mutta hahmo ilmestyy silti aina pelikentän "oikeaan" keskustaan, joka sattuu minulla olemaan kentän ulkopuolella... :/
"Baby," I said. "I'm a genius but nobody knows it but me."
Re: Tyhmät kysymykset (I/2010)
Ei toimi... voisiko joku ystävällisesti korjata...?esa94 wrote:DJ-Nerd wrote:Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?EDIT:olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
Sitten tiedostosta lukiessa vain laitat PutPixelillä takaisinCode: Select all
Lock SCREEN() pikseli = GetPixel2 x, y Unlock SCREEN()
Code: Select all
Include "cbFun.cb"
SCREEN 700,600
begin:
Print "Free bmp-, jpg-, png- and tga-image convert to cim!"
Repeat
cou=Input("Do you want to convert(1) or unpack .cim -file to bmp(2)? :")
DrawScreen
Until KeyUp(28)
CloseInput
If cou=2 Then Goto unpack
Repeat
Repeat
path$=Input("Give me a file path what exists: ")
DrawScreen
Until KeyUp(28)
CloseInput
If FileExists(path) Then
Print "Checking if file exist..." : Wait 1000
If check() = 1 Then
img=LoadImage(""+path$)
Print "Founded!" : Wait 1000 : Goto show
Else
Print "Wrong type of file!" : print ""+Right(path$,4) + " is not correct format!" : Wait 5000
EndIf
Else
Print "File doesn´t exist!"
Wait 2000
Goto begin
EndIf
Forever
Function check()
If Right(path$,4) = ".bmp" Or Right(path$,4) = ".jpg" Or Right(path$,4) = ".png" Or Right(path$,4) = ".tga" Then
Return 1
Else
Return 1
EndIf
EndFunction
show:
Print "Please wait..!"
DrawImage img, 100,100
DrawScreen
AddText ".bmp (1) .cim (2)"
Repeat
format$=Input("Whitch one format do you want to convert '"+path$+"' - file? ")
DrawScreen
Until KeyUp(2) Or KeyUp(3)
CloseInput
Gosub convert
Print "Conversion successfully!" : Wait 2000 : Goto begin
Return
convert:
If format = "1" Then
AddText "Starting converting your image to BMP...."
DrawScreen
Wait 25000
Cls
newfilepath$=Left(path$,Len(path$)-4) + ".bmp"
SCREEN ImageWidth(img), ImageHeight(img)
DrawImage img,0,0
DrawScreen
ScreenShot ""+newfilepath
Else
Print "Converting... Wait! Screen is reserved to converting!"
Wait 2000
ClearText
DrawScreen
DrawImage img,0,0
DrawScreen
Wait 1000
newfilepath$=Left(path$,Len(path$)-4) + ".cim"
newimage=OpenToWrite(""+newfilepath$)
WriteInt newimage, ImageWidth(img)
WriteInt newimage, ImageHeight(img)
For y=0 To ImageHeight(img)
For x=0 To ImageWidth(img)
Lock SCREEN()
pikseli = GetPixel2(x, y)
Unlock SCREEN()
PickColor x,y
WriteByte newimage, pikseli
Dot x,y
Next x
Next y
CloseFile newimage
Color 255,255,255
EndIf
Return
unpack:
Repeat
path$=Input("Give me a (cim)file path what exists: ")
DrawScreen
Until KeyUp(28)
CloseInput
If FileExists(path) Then
Print "Unpacking..." : Wait 1000
cim=OpenToRead(""+path$)
width=ReadInt(cim)
height=ReadInt(cim)
For y=0 To height
For x=0 To width
Lock SCREEN()
PutPixel2 x, y, ReadByte(cim)
Unlock SCREEN()
Next x
Next y
DrawScreen
ScreenShot ""+left(path,Len(path)-4) + ".bmp"
Else
Print "File doesn´t exist!"
Wait 2000
Goto begin
EndIf
Return
-
- Tech Developer
- Posts: 650
- Joined: Mon Aug 27, 2007 9:51 pm
- Location: Helsinki, Finland
- Contact:
Re: Tyhmät kysymykset (I/2010)
Komppaan itseäni: viewtopic.php?p=39598#p39598DJ-Nerd wrote:Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?EDIT:olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES
CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Tech-kehittäjä
CoolBasic Classic, Cool VES
CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Re: Tyhmät kysymykset (I/2010)
Nice!SPuntte wrote:Komppaan itseäni: viewtopic.php?p=39598#p39598DJ-Nerd wrote:Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?EDIT:olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
Entäs tiedostosta lukeminen?
-
- Devoted Member
- Posts: 594
- Joined: Tue Sep 30, 2008 4:30 pm
- Location: Ruudun toisella puolella
Re: Tyhmät kysymykset (I/2010)
readline ja siihen liittyvät funktiot, manuaalia vois opetella käyttämään...DJ-Nerd wrote:Nice!SPuntte wrote:Komppaan itseäni: viewtopic.php?p=39598#p39598DJ-Nerd wrote:Miten haen tietyn RGB-arvon tietyssä näyttökoordinaatissa sijaitsevasta pikselistä vai onko se edes mahdollista?EDIT:olen siis tekemässä ohjelmaa joka tallentaa pikseleitä tiedostoon
Entäs tiedostosta lukeminen?
Re: Tyhmät kysymykset (I/2010)
Myönnän että edellinen viestini oli hieman epäselvä, korjaan:Wingman wrote:readline ja siihen liittyvät funktiot, manuaalia vois opetella käyttämään...DJ-Nerd wrote: Nice!
Entäs tiedostosta lukeminen?
Miten luetaan noita pikselitietoja tiedostosta ja niiden perusteella piirretään alkuperäinen kuva?
Re: Tyhmät kysymykset (I/2010)
huoh... noh helpoin tapa ei ole purkaa pikseliä RGB:ksi vaan kirjoitat pikselin WriteInt:llä ja GetPixel2():lla tiedostoon. Luet ReadInt:llä ja sitten piirrät PutPixel:llä.
Wingman: fail... 1. miksi antaisit x ja y arvot kun voit lukea kaikki pikselit järjestyksessä... 2. ei RGB arvoja hidastaa paljon, joutuu lukemaan 2 lukua enemmän ja käyttämään PutPixelin sijasta Dot:ia ellei muunna RGB:tä biteiksi...
Wingman: fail... 1. miksi antaisit x ja y arvot kun voit lukea kaikki pikselit järjestyksessä... 2. ei RGB arvoja hidastaa paljon, joutuu lukemaan 2 lukua enemmän ja käyttämään PutPixelin sijasta Dot:ia ellei muunna RGB:tä biteiksi...
Last edited by phons on Sat Jun 05, 2010 1:31 pm, edited 1 time in total.
-
- Devoted Member
- Posts: 594
- Joined: Tue Sep 30, 2008 4:30 pm
- Location: Ruudun toisella puolella
Re: Tyhmät kysymykset (I/2010)
vaikka niin, että readbyte/init:llä annat x,y,red,green ja blue arvot, ja piirrät pisteen näillä arvoillaDJ-Nerd wrote:Myönnän että edellinen viestini oli hieman epäselvä, korjaan:Wingman wrote:readline ja siihen liittyvät funktiot, manuaalia vois opetella käyttämään...DJ-Nerd wrote: Nice!
Entäs tiedostosta lukeminen?
Miten luetaan noita pikselitietoja tiedostosta ja niiden perusteella piirretään alkuperäinen kuva?
Re: Tyhmät kysymykset (I/2010)
Tähän ei tarvita kuin:Wingman wrote:vaikka niin, että readbyte/init:llä annat x,y,red,green ja blue arvot, ja piirrät pisteen näillä arvoillaDJ-Nerd wrote:Myönnän että edellinen viestini oli hieman epäselvä, korjaan:Wingman wrote: readline ja siihen liittyvät funktiot, manuaalia vois opetella käyttämään...
Miten luetaan noita pikselitietoja tiedostosta ja niiden perusteella piirretään alkuperäinen kuva?
for-loop x2
ReadInt x1
PutPixel x1
Eli luetaan tiedostosta leveys ja korkeus, for-loopit sisäkkäin ja avót. Eli ei tarvitse lukea x eikä y. Nuo kolme väriä taas tulevat sen pixelin arvossa. Toivottavasti en haksahtanut pahasti.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: Tyhmät kysymykset (I/2010)
Code: Select all
Include "cbApi.cb"
If FileDialog(OPEN_FILE_DLG, "bmp", "", "Image Files|*.bmp;*.jpg;*.png;*.tga|") = IDOK Then
img = LoadImage(FileDialogData(FD_FULLNAME))
Else
MakeError "!"
EndIf
DrawImage img,0,0
Repeat
DrawScreen
Forever
Missä vika?
Ei suostu millään konstilla käsittelemään noita apijuttuja!
Re: Tyhmät kysymykset (I/2010)
Piirtokomento on silmukan ulkopuolella.DJ-Nerd wrote:ja ainut mikä tuossa toimii on MakeError "!".
Missä vika?
Ei suostu millään konstilla käsittelemään noita apijuttuja!
Muutoin kyllä toimii tuo koodi omalla koneella. CbApi.dll:stäkään ongelma tuskin voi johtua, jos ohjelma suostuu käynnistymään.
Re: Tyhmät kysymykset (I/2010)
Ei se tuosta ole kiinni...Jonez wrote:Piirtokomento on silmukan ulkopuolella.DJ-Nerd wrote:ja ainut mikä tuossa toimii on MakeError "!".
Missä vika?
Ei suostu millään konstilla käsittelemään noita apijuttuja!
Muutoin kyllä toimii tuo koodi omalla koneella. CbApi.dll:stäkään ongelma tuskin voi johtua, jos ohjelma suostuu käynnistymään.
If-lause vaan ei anna koskaan true-arvoa.
Re: Tyhmät kysymykset (I/2010)
Olen siirtänyt TileGenin muistitikulle, jotta pystyn muokkaamaan karttoja myös muilla koneilla. Otin sen alunperin Windows XP:ltä ja Win 7:lla toimivalla läppärillä meni ihan normaalisti, mutta nyt toisen koneen XP ei suostu käynnistämään vaan herjaa "Sovelluksen alustus epäonnistui (0xc0000135). Lopeta sovellus valitsemalla OK."
Missä vika?
Missä vika?
"Baby," I said. "I'm a genius but nobody knows it but me."
Re: Tyhmät kysymykset (I/2010)
Onko .NET Framework asennettu?Hene wrote:Olen siirtänyt TileGenin muistitikulle, jotta pystyn muokkaamaan karttoja myös muilla koneilla. Otin sen alunperin Windows XP:ltä ja Win 7:lla toimivalla läppärillä meni ihan normaalisti, mutta nyt toisen koneen XP ei suostu käynnistämään vaan herjaa "Sovelluksen alustus epäonnistui (0xc0000135). Lopeta sovellus valitsemalla OK."
Missä vika?
Re: Tyhmät kysymykset (I/2010)
en tajua mikä täs mättää?
Code: Select all
FrameLimit 40
Global e,ee,a,s,a1,s1
While (InStr(gx$,Str(e)) Or e=0)
e=Rand(1,16)
Wend
gx$=gx$+" "+e
katotaa(e,a,s)
While (InStr(gx$,Str(ee)) Or ee=0)
ee=Rand(1,16)
Wend
gx$=gx$+" "+ee
katotaa(ee,a1,s1)
Repeat
print a
print s
print a1
print s1
DrawScreen
Forever
Function katotaa(ran_de,e_ka,to_ka)
If ran_de=1 Then e_ka=20 : to_ka=20
If ran_de=2 Then e_ka=120 : to_ka=20
If ran_de=3 Then e_ka=220 : to_ka=20
If ran_de=4 Then e_ka=320 : to_ka=20
If ran_de=5 Then e_ka=20 : to_ka=120
If ran_de=6 Then e_ka=120 : to_ka=120
If ran_de=7 Then e_ka=220 : to_ka=120
If ran_de=8 Then e_ka=320 : to_ka=120
If ran_de=9 Then e_ka=20 : to_ka=220
If ran_de=10 Then e_ka=120 : to_ka=220
If ran_de=11 Then e_ka=220 : to_ka=220
If ran_de=12 Then e_ka=320 : to_ka=220
If ran_de=13 Then e_ka=20 : to_ka=320
If ran_de=14 Then e_ka=120 : to_ka=320
If ran_de=15 Then e_ka=220 : to_ka=320
If ran_de=16 Then e_ka=320 : to_ka=320
End Function
Re: Tyhmät kysymykset (I/2010)
En muista toimiko : lyhennetyn if:n kanssa. Sitä paitsi, käyttäisit switchiä.vieras wrote:en tajua mikä täs mättää?Code: Select all
FrameLimit 40 Global e,ee,a,s,a1,s1 While (InStr(gx$,Str(e)) Or e=0) e=Rand(1,16) Wend gx$=gx$+" "+e katotaa(e,a,s) While (InStr(gx$,Str(ee)) Or ee=0) ee=Rand(1,16) Wend gx$=gx$+" "+ee katotaa(ee,a1,s1) Repeat print a print s print a1 print s1 DrawScreen Forever Function katotaa(ran_de,e_ka,to_ka) If ran_de=1 Then e_ka=20 : to_ka=20 If ran_de=2 Then e_ka=120 : to_ka=20 If ran_de=3 Then e_ka=220 : to_ka=20 If ran_de=4 Then e_ka=320 : to_ka=20 If ran_de=5 Then e_ka=20 : to_ka=120 If ran_de=6 Then e_ka=120 : to_ka=120 If ran_de=7 Then e_ka=220 : to_ka=120 If ran_de=8 Then e_ka=320 : to_ka=120 If ran_de=9 Then e_ka=20 : to_ka=220 If ran_de=10 Then e_ka=120 : to_ka=220 If ran_de=11 Then e_ka=220 : to_ka=220 If ran_de=12 Then e_ka=320 : to_ka=220 If ran_de=13 Then e_ka=20 : to_ka=320 If ran_de=14 Then e_ka=120 : to_ka=320 If ran_de=15 Then e_ka=220 : to_ka=320 If ran_de=16 Then e_ka=320 : to_ka=320 End Function
Code: Select all
Select ran_de
Case 1:
e_ka = 20
to_ka = 20
Case 2:
...
EndSelect