Offtopic (I/2009)

Muu yhteisön välinen keskustelu.
Locked
pate5_guest

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by pate5_guest »

SPuntte wrote:Tulipa mieleen, että tietääkö kukaan kikkaa tulostaa CB:llä Unicode-alueen merkkejä niitä sisältävistä fonteista?
Esimerkiksi: ♠♣♥♦
Chr() -funktiolla pitäisi onnistua. En tiedä toimiiko.
User avatar
Ruuttu
Devoted Member
Posts: 688
Joined: Thu Aug 30, 2007 5:11 pm
Location: Finland, Sipoo

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Ruuttu »

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ä.
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by phons »

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...
Image
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Olwi »

Neljään vuoteen eka kerta ku teen kotona läksyjä :lol: Ope uhkas ettei pääse kurssia läpi jos ens kerral on viel tekemättä
Huuda mun ip:tä!
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Awaclus »

Onnea jollekin vaan.
User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by KillBurn »

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!
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Jare »

KillBurn wrote:Tarvisin Marcoderin Scaleimage() funktiota. Voisiko joku antaa sen?
Tässä, hieman muokattuna, mutta käytännössä toimii kuten alkuperäinen.

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

User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Substance »

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

Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by esa94 »

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

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.

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!
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Jare »

Mihinkähän Marcoder muuten on hävinnyt? Erittäin hyvää koodia hän on taannoin tehnyt! Kukaan kuullut hänestä?
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by phons »

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ä...
Image
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by MaGetzUb »

ScaleImage saa kuvan skaalaamisen reaaliajassa näyttämään vaivalloisen helpolta FTW!? :D Mahtavaa! Hail great Marcoder!
innoissani munasin koko viestin alunperin :|
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by JATothrim »

8-) 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...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by MaGetzUb »

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)

Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by KilledWhale »

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)

Testaas vielä smooth2d päällä
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Olwi »

Äitin hautajaisiin koht :?
Huuda mun ip:tä!
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Awaclus »

Olwi wrote:Äitin hautajaisiin koht :?
Otan osaa :(
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by phons »

Chaosworm wrote:Otan osaa :(
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"..

Edit:
täytyy olla aika paha ihminen
No joo, mutta tuli nyt vain mieleen, että jotkut sanoo näin ihan muodon vuoksi..
Last edited by phons on Sun Sep 06, 2009 8:26 pm, edited 3 times in total.
Image
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Offtopic, aiheen vierestä, niitä näitä ja banniruletti

Post by Awaclus »

phons wrote:
Chaosworm wrote:Otan osaa :(
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"..
Keskustelkaa pois, minä tarkoitan silti.
MikkoK
Devoted Member
Posts: 813
Joined: Thu Jun 05, 2008 2:13 pm
Location: City 17

Re: Offtopic, aiheen vierestä, niitä näitä ja bann

Post by MikkoK »

Chaosworm wrote:
Olwi wrote:Äitin hautajaisiin koht :?
Otan osaa :(
Osanotot täältäkin päin :(

Code: Select all

#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Locked