mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-08 20:38:47 +00:00
Added a few Monkey2 examples (#3811)
* Added Monkey2 (extension .monkey2) example This compiles with the most up to date Monkey2 release (V1.1.06). * Sorting example in Monkey2 * Add files via upload * Gui example using the MojoX module
This commit is contained in:
committed by
Colin Seymour
parent
db1d4f7893
commit
a4e6fc78c8
83
samples/Monkey/encodeToPng.monkey2
Normal file
83
samples/Monkey/encodeToPng.monkey2
Normal file
@@ -0,0 +1,83 @@
|
||||
|
||||
#Import "<std>"
|
||||
Using std..
|
||||
|
||||
'Set your own path here. Defaults to build folder.
|
||||
Global path:= AppDir() + "encodeToPng.png"
|
||||
|
||||
Function Main()
|
||||
|
||||
'Write from PixMap
|
||||
Local source := New Pixmap( 100, 100 )
|
||||
For Local y := 0 Until source.Width
|
||||
For Local x := 0 Until source.Height
|
||||
'Generates random pixels
|
||||
source.SetPixelARGB( x, y, ARGB( 255, Rnd(0, 255), 0, Rnd(0, 255) ) )
|
||||
Next
|
||||
Next
|
||||
source.Save( path )
|
||||
|
||||
'Read from png to PixMap
|
||||
Local dest := Pixmap.Load( path )
|
||||
Local a := ""
|
||||
Local r := ""
|
||||
Local g := ""
|
||||
Local b := ""
|
||||
For Local y := 0 Until dest.Width
|
||||
For Local x := 0 Until source.Height
|
||||
Local argb := dest.GetPixelARGB(x,y)
|
||||
a += ARGBToAlpha( argb ) + " "
|
||||
r += ARGBToRed( argb ) + " "
|
||||
g += ARGBToGreen( argb ) + " "
|
||||
b += ARGBToBlue( argb ) + " "
|
||||
Next
|
||||
a += "~n"
|
||||
r += "~n"
|
||||
g += "~n"
|
||||
b += "~n"
|
||||
Next
|
||||
|
||||
'Print resulting pixels
|
||||
Print( " ~nAlpha:~n" + a )
|
||||
Print( " ~nRed:~n" + r )
|
||||
Print( " ~nGreen:~n" + g )
|
||||
Print( " ~nBlue:~n" + b )
|
||||
|
||||
End
|
||||
|
||||
|
||||
'**************** Color Functions ****************
|
||||
|
||||
|
||||
Function ARGB:UInt( a:Float, r:Float, g:Float, b:Float )
|
||||
Assert ( a<=1.0, "Alpha max value is 1.0" )
|
||||
Assert ( r<=1.0, "Red max value is 1.0" )
|
||||
Assert ( g<=1.0, "Green max value is 1.0" )
|
||||
Assert ( b<=1.0, "Blue max value is 1.0" )
|
||||
Return UInt(a*255) Shl 24 | UInt(r*255) Shl 16 | UInt(g*255) Shl 8 | UInt(b*255)
|
||||
End
|
||||
|
||||
Function ARGB:UInt( a:Int, r:Int, g:Int, b:Int )
|
||||
Assert ( a<256, "Alpha can't be higher than 255" )
|
||||
Assert ( r<256, "Red can't be higher than 255" )
|
||||
Assert ( g<256, "Green can't be higher than 255" )
|
||||
Assert ( b<256, "Blue can't be higher than 255" )
|
||||
Return( a Shl 24 | r Shl 16 | g Shl 8 | b )
|
||||
End
|
||||
|
||||
Function ARGBToAlpha:Int( argb:UInt )
|
||||
Return argb Shr 24 & $ff
|
||||
End
|
||||
|
||||
Function ARGBToRed:Int( argb:UInt )
|
||||
Return argb Shr 16 & $ff
|
||||
End
|
||||
|
||||
Function ARGBToGreen:Int( argb:UInt )
|
||||
Return argb Shr 8 & $ff
|
||||
End
|
||||
|
||||
Function ARGBToBlue:Int( argb:UInt )
|
||||
Return argb & $ff
|
||||
End
|
||||
|
||||
Reference in New Issue
Block a user