Chr() -funktiolla pitäisi onnistua. En tiedä toimiiko.SPuntte wrote:Tulipa mieleen, että tietääkö kukaan kikkaa tulostaa CB:llä Unicode-alueen merkkejä niitä sisältävistä fonteista?
Esimerkiksi: ♠♣♥♦
Offtopic (I/2009)
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Ei toimi, jos komennolle syöttää muita arvoja kuin 0-255 niin se tuntuu aloittavan kierron alusta. Muilla luvuilla ei siis löydy muita mystisiä merkkejä.
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Tämä voi olla outoa, ja väärrä tietoa, mutta kukas se oli joka teki sen cbSDL:n, BTW siinähän otettiin fontit kuvista. Sillä sitten pistät kuvaan a-merkin tilalle padan jne. niin homma on hoidossa. Sitten vielä pistät sen syöttämään tekstin "a" ruudulle ja sinne ilmestyy pata. Voíla, ehkei toimi, mutta yksi tapa...
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Neljään vuoteen eka kerta ku teen kotona läksyjä Ope uhkas ettei pääse kurssia läpi jos ens kerral on viel tekemättä
Huuda mun ip:tä!
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Onnea jollekin vaan.
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Tarvisin Marcoderin Scaleimage() funktiota. Voisiko joku antaa sen?
EDIT:
Kiitos, mutta ohjelma kaatuu imagewidth erroriin. Onkohan tuossa jotain vikaa?
EDIT:
Nyt sain toimimaan. Mutta ei tuo kuvan kokoa muuta, mitäs nyt.
Last edited by KillBurn on Tue Sep 01, 2009 5:49 pm, edited 3 times in total.
Sumu Games: Sam, Ur eye!
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Tässä, hieman muokattuna, mutta käytännössä toimii kuten alkuperäinen.KillBurn wrote:Tarvisin Marcoderin Scaleimage() funktiota. Voisiko joku antaa sen?
Code: Select all
Global gScaledImage
gScaledImage = MakeImage(1, 1)
Function ScaleImage(_image, _width, _height)
//By: Marcoder
//Modification: Little optimization handling with ImageWidth() And ImageHeight().
// Jos koko ei ole muuttunut niin ei tehdä mitään
If _width = ImageWidth(gScaledImage) And _height = ImageHeight(gScaledImage) Then Return gScaledImage
If _width <= 0 Or _height <= 0 Then Return gScaledImage
DeleteImage gScaledImage
gScaledImage = MakeImage(_width, _height)
_image_width = ImageWidth(_image)
_image_height= ImageHeight(_image)
// Tehdään temppikuva johon skaalataan ensin vain leveys
lTempImage = MakeImage(_width, ImageHeight(_image))
DrawToImage lTempImage
For x = 0 To _width - 1
sx# = Float(_image_width) / Float(_width) * Float(x)
DrawImageBox _image, x, 0, sx, 0, 1, _image_height, OFF,OFF
Next x
lTempImage_width = ImageWidth(lTempImage)
DrawToScreen
// Skaalataan myös pystysuunnassa
DrawToImage gScaledImage
For y = 0 To _height - 1
sy# = Float(_image_height) / Float(_height) * Float(y)
DrawImageBox lTempImage, 0, y, 0, sy, lTempImage_width, 1, OFF,OFF
Next y
DrawToScreen
DeleteImage lTempImage
Return gScaledImage
End Function
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
On kyllä nopea, tein vähän vertailua.
Code: Select all
Global gScaledImage
gScaledImage = MakeImage(1, 1)
w = 1000
h = 1000
tatti1 = LoadImage("Media\tatti.bmp")
tatti2 = CloneImage(tatti1)
_time1 = Timer()
tatti1 = ScaleImage(tatti1,w,h)
_time1 = Timer() - _time1
_time2= Timer()
ResizeImage tatti2,w,h
_time2 = Timer() - _time2
DrawImage tatti1, 0, 50
Text 0,0,"ScaleImage "+ _time1*0.001 + " seconds"
Text 0,20,"ResizeImage "+ _time2*0.001 + " seconds"
Text 0,40,"Mushrooms scale is "+w+"*"+h
Text 0,60,"ScaleImage was "+(_time2/_time1) + " times better than ResizeImage."
DrawScreen
WaitKey
Function ScaleImage(_image, _width, _height)
//By: Marcoder
//Modification: Little optimization handling with ImageWidth() And ImageHeight().
// Jos koko ei ole muuttunut niin ei tehdä mitään
If _width = ImageWidth(gScaledImage) And _height = ImageHeight(gScaledImage) Then Return gScaledImage
If _width <= 0 Or _height <= 0 Then Return gScaledImage
DeleteImage gScaledImage
gScaledImage = MakeImage(_width, _height)
_image_width = ImageWidth(_image)
_image_height= ImageHeight(_image)
// Tehdään temppikuva johon skaalataan ensin vain leveys
lTempImage = MakeImage(_width, ImageHeight(_image))
DrawToImage lTempImage
For x = 0 To _width - 1
sx# = Float(_image_width) / Float(_width) * Float(x)
DrawImageBox _image, x, 0, sx, 0, 1, _image_height, OFF,OFF
Next x
lTempImage_width = ImageWidth(lTempImage)
DrawToScreen
// Skaalataan myös pystysuunnassa
DrawToImage gScaledImage
For y = 0 To _height - 1
sy# = Float(_image_height) / Float(_height) * Float(y)
DrawImageBox lTempImage, 0, y, 0, sy, lTempImage_width, 1, OFF,OFF
Next y
DrawToScreen
DeleteImage lTempImage
Return gScaledImage
End Function
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
ScaleImage oli yli 20 kertaa nopeampi. Se on kova. Kun kustomifunktio skaalasi kuvan 0.05 sekunnissa, CB:n perusfunkkari vie 1.26 sekuntia. Siis samassa ajassa, kuin perusfunktiolla skaalataan yksi tatti, saadaan ScaleImagella skaalattua 1000*1000-kokoon 25 tattikuvaa.LittleGreen wrote:On kyllä nopea, tein vähän vertailua.Code: Select all
Global gScaledImage gScaledImage = MakeImage(1, 1) w = 1000 h = 1000 tatti1 = LoadImage("Media\tatti.bmp") tatti2 = CloneImage(tatti1) _time1 = Timer() tatti1 = ScaleImage(tatti1,w,h) _time1 = Timer() - _time1 _time2= Timer() ResizeImage tatti2,w,h _time2 = Timer() - _time2 DrawImage tatti1, 0, 50 Text 0,0,"ScaleImage "+ _time1*0.001 + " seconds" Text 0,20,"ResizeImage "+ _time2*0.001 + " seconds" Text 0,40,"Mushrooms scale is "+w+"*"+h Text 0,60,"ScaleImage was "+(_time2/_time1) + " times better than ResizeImage." DrawScreen WaitKey Function ScaleImage(_image, _width, _height) //By: Marcoder //Modification: Little optimization handling with ImageWidth() And ImageHeight(). // Jos koko ei ole muuttunut niin ei tehdä mitään If _width = ImageWidth(gScaledImage) And _height = ImageHeight(gScaledImage) Then Return gScaledImage If _width <= 0 Or _height <= 0 Then Return gScaledImage DeleteImage gScaledImage gScaledImage = MakeImage(_width, _height) _image_width = ImageWidth(_image) _image_height= ImageHeight(_image) // Tehdään temppikuva johon skaalataan ensin vain leveys lTempImage = MakeImage(_width, ImageHeight(_image)) DrawToImage lTempImage For x = 0 To _width - 1 sx# = Float(_image_width) / Float(_width) * Float(x) DrawImageBox _image, x, 0, sx, 0, 1, _image_height, OFF,OFF Next x lTempImage_width = ImageWidth(lTempImage) DrawToScreen // Skaalataan myös pystysuunnassa DrawToImage gScaledImage For y = 0 To _height - 1 sy# = Float(_image_height) / Float(_height) * Float(y) DrawImageBox lTempImage, 0, y, 0, sy, lTempImage_width, 1, OFF,OFF Next y DrawToScreen DeleteImage lTempImage Return gScaledImage End Function
Esa suosittelee lämpimästi. Nyt kaikki muuttamaan koodeihinne ScaleImage. (Ja jos funktioraja alkaa lähestyä, ei huolta: Voit aina kokeilla Muokattua kääntäjää. Sen saa kahtena versiona: 2000 funktion ja 9999 funktion rajoilla. MUISTA KUITENKIN VARMUUSKOPIOIDA ALKUPERÄINEN "CBCompiler.exe", JOS VAIKKA SATUT SITÄ VIELÄ TARVITSEMAAN!
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Mihinkähän Marcoder muuten on hävinnyt? Erittäin hyvää koodia hän on taannoin tehnyt! Kukaan kuullut hänestä?
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Tämä on pieni veikkaus, mutta luulisin, että joko kyllästyi CB:hen ja vaihtoi C++:ssaan, vaihtoi alaa kokonaan eikä siis enää koodaile tai muuten vain unohtanut koko CB:n jos on ollut vaikka jossain pitkällä matkalla ja sitten on jäänyt tällaiset kokonaan, tämä nyt ei ole kovinkaan todennäköistä...
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
ScaleImage saa kuvan skaalaamisen reaaliajassa näyttämään vaivalloisen helpolta FTW!? Mahtavaa! Hail great Marcoder!
innoissani munasin koko viestin alunperin
innoissani munasin koko viestin alunperin
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
vielä kerkeää aiheeseen, oma tekeleeni kuvan vääntö funktiosta. tekee kuitenkin aika karheaa jälkeä reaaliaikasena..
Code: Select all
Global gScaled_Image
Const SCALE_BLOCK_SIZE = 4
Function ScaleImage(img%, botom_w#, right_s#)
imgW% = ImageWidth(img)
imgH% = ImageHeight(img)
new_width% = max(imgW, botom_w)
new_height% = max(imgH, right_s)
If gScaled_Image = 0
gScaled_Image = MakeImage(new_width, new_height)
Else
DeleteImage gScaled_Image
gScaled_Image = MakeImage(new_width, new_height)
EndIf
DrawToImage gScaled_Image
For y% = 0 To new_height Step SCALE_BLOCK_SIZE
width = imgW + (y / Float(new_height)) * (botom_w - imgW)
For x% = 0 To new_width Step SCALE_BLOCK_SIZE
draw_x# = (x / Float(width)) * Float(imgW)
height = imgH + (x / Float(new_width)) * (right_s - imgH)
draw_y# = (y / Float(height)) * Float(imgH)
DrawImageBox img, x, y, draw_x, draw_y, SCALE_BLOCK_SIZE, SCALE_BLOCK_SIZE
Next x%
Next y%
DrawToScreen
Return gScaled_Image
EndFunction
'ChDir "..\..\..\ohjelmat\coolbasic"
img = LoadImage("media\pacman.bmp")
Repeat
w = MouseX()
h = MouseY()
DrawImage ScaleImage(img, w, h), 0, 0
Text 300,0,FPS()
DrawScreen
Forever
-On selkeästi impulsiivinen koodaaja joka...
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Skaalasin ScaleImagella, Media mapin, Full HD(1920x1080) resoluutioon, eikä yhtään hidastellut.
Huom Reaaliajassa.
Huom Reaaliajassa.
EDIT:
Lisäksi, testasin reaaliajassa resizeimagella venytystä, ja tuli rumempaa skaalaus jälkeä, koska Resizeimage sekoittaa pikseleitä.(ei blendaa)
Solar Eclipse
We're in a simulation, and God is trying to debug us.
-
- Tech Developer
- Posts: 545
- Joined: Sun Aug 26, 2007 2:43 pm
- Location: Liminka
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Testaas vielä smooth2d päälläMaGetzUb wrote:Skaalasin ScaleImagella, Media mapin, Full HD(1920x1080) resoluutioon, eikä yhtään hidastellut.
Huom Reaaliajassa.EDIT:Lisäksi, testasin reaaliajassa resizeimagella venytystä, ja tuli rumempaa skaalaus jälkeä, koska Resizeimage sekoittaa pikseleitä.(ei blendaa)
CoolBasic henkilökuntaa
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Otan osaaOlwi wrote:Äitin hautajaisiin koht
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Hehheh, just eilen keskusteltiin irkissä, että ei sitä oikeesti tarkota mitä sanoo, anteeksi jos loukkasin jotenkin. En ole muuten saanut vieläkään selvyyttä, että mihin hän kuoli, sen ymmärsin että johki sairauteen tai jtn, muta mihin tarkaanottaen... Ei tarvii vastata, jos olen liian utelias, tai tämä kysymys on liian "yksityinen"..Chaosworm wrote:Otan osaa
Edit:
No joo, mutta tuli nyt vain mieleen, että jotkut sanoo näin ihan muodon vuoksi..täytyy olla aika paha ihminen
Last edited by phons on Sun Sep 06, 2009 8:26 pm, edited 3 times in total.
Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti
Keskustelkaa pois, minä tarkoitan silti.phons wrote:Hehheh, just eilen keskusteltiin irkissä, että ei sitä oikeesti tarkota mitä sanoo, anteeksi jos loukkasin jotenkin. En ole muuten saanut vieläkään selvyyttä, että mihin hän kuoli, sen ymmärsin että johki sairauteen tai jtn, muta mihin tarkaanottaen... Ei tarvii vastata, jos olen liian utelias, tai tämä kysymys on liian "yksityinen"..Chaosworm wrote:Otan osaa
Re: Offtopic, aiheen vierestä, niitä näitä ja bann
Osanotot täältäkin päinChaosworm wrote:Otan osaaOlwi wrote:Äitin hautajaisiin koht
Code: Select all
#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.