Bitmap/AutoHotkey: Difference between revisions
mNo edit summary |
(added writeppm function, fixed memory allocation in bitmap instantiator) |
||
Line 4: | Line 4: | ||
blue := color(0,0,255) ; rgb |
blue := color(0,0,255) ; rgb |
||
cyan := color(0,255,255) |
cyan := color(0,255,255) |
||
MsgBox % "blue:r,g,b,rgb " blue.R "," blue.G "," blue.B ", " blue.rgb() |
|||
MsgBox % "cyan:r,g,b,rgb " cyan.R "," cyan.G "," cyan.B ", " cyan.RGB() |
|||
blue_square := Bitmap(10, 10, blue) |
blue_square := Bitmap(10, 10, blue) |
||
cyanppm := Bitmap(10, 10, cyan) |
|||
x := blue_square[4,4] ; get pixel(4,4) |
x := blue_square[4,4] ; get pixel(4,4) |
||
msgbox % "blue: 4,4,R,G,B, RGB: " x.R ", " x.G ", " x.B ", " x.rgb() |
msgbox % "blue: 4,4,R,G,B, RGB: " x.R ", " x.G ", " x.B ", " x.rgb() |
||
blue_square[4,4] := cyan ; set pixel(4,4) |
blue_square[4,4] := cyan ; set pixel(4,4) |
||
x := blue_square[4,4] ; get pixel(4,4) |
x := blue_square[4,4] ; get pixel(4,4) |
||
blue_square.write("blue.ppm") |
|||
msgbox % "cyan: 4,4,R,G,B, RGB: " x.R ", " x.G ", " x.B ", " x.rgb() |
|||
return |
return |
||
Line 24: | Line 23: | ||
if !BitmapType |
if !BitmapType |
||
BitmapType |
BitmapType |
||
:= Object("fill", "Bitmap_Fill" |
:= Object("fill", "Bitmap_Fill" |
||
,"write", "Bitmap_write_ppm3") |
|||
img := Object("width", width |
img := Object("width", width |
||
Line 30: | Line 30: | ||
, "base" , BitmapType) |
, "base" , BitmapType) |
||
img._SetCapacity( |
img._SetCapacity(height) ; an array of rows |
||
img.fill(background) |
img.fill(background) |
||
Return img |
Return img |
||
Line 50: | Line 50: | ||
} |
} |
||
Bitmap_write_ppm3(bitmap, filename) |
|||
{ |
|||
file := FileOpen(filename, 0x11) ; utf-8, write |
|||
file.seek(0,0) |
|||
file.write("P3`n" |
|||
. bitmap.width . " " . bitmap.height . "`n" |
|||
. "255`n") |
|||
loop % bitmap.height |
|||
{ |
|||
height := A_Index |
|||
loop % bitmap.width |
|||
{ |
|||
width := A_Index |
|||
color := bitmap[height, width] |
|||
file.Write(color.R . " ") |
|||
file.Write(color.G . " ") |
|||
file.Write(color.B . " ") |
|||
} |
|||
file.write("`n") |
|||
} |
|||
file.close() |
|||
return 0 |
|||
⚫ | |||
Color(r, g, b) |
Color(r, g, b) |
||
Line 67: | Line 90: | ||
{ |
{ |
||
return clr.R << 16 | clr.G << 8 | clr.B |
return clr.R << 16 | clr.G << 8 | clr.B |
||
}</lang> |
|||
⚫ | |||
!r::reload |
|||
!q::exitapp</lang> |
Revision as of 18:12, 9 February 2010
<lang AutoHotkey>test: blue := color(0,0,255) ; rgb cyan := color(0,255,255) blue_square := Bitmap(10, 10, blue) cyanppm := Bitmap(10, 10, cyan) x := blue_square[4,4] ; get pixel(4,4) msgbox % "blue: 4,4,R,G,B, RGB: " x.R ", " x.G ", " x.B ", " x.rgb() blue_square[4,4] := cyan ; set pixel(4,4) x := blue_square[4,4] ; get pixel(4,4) blue_square.write("blue.ppm") return
Bitmap(width = 1, height = 1, background = 0) { global black black := color(0,0,0) if !background background := black
static BitmapType if !BitmapType BitmapType := Object("fill", "Bitmap_Fill"
,"write", "Bitmap_write_ppm3")
img := Object("width", width
,"height", height , "base" , BitmapType)
img._SetCapacity(height) ; an array of rows
img.fill(background)
Return img }
Bitmap_Fill(bitmap, color)
{
loop % bitmap.height { height := A_Index loop % bitmap.width { width := A_Index bitmap[height, width] := color } } return bitmap
}
Bitmap_write_ppm3(bitmap, filename) { file := FileOpen(filename, 0x11) ; utf-8, write file.seek(0,0) file.write("P3`n" . bitmap.width . " " . bitmap.height . "`n" . "255`n")
loop % bitmap.height { height := A_Index loop % bitmap.width { width := A_Index color := bitmap[height, width] file.Write(color.R . " ") file.Write(color.G . " ") file.Write(color.B . " ") } file.write("`n") } file.close() return 0
}
Color(r, g, b) {
static ColorType if !ColorType ColorType := Object("rgb" , "Color_rgb")
return Object("r" , r, "g", g, "b", b , "base" , ColorType)
; return Object("r" , r, "g", g, "b", b, "rgb", "Color_rgb")
}
Color_rgb(clr) { return clr.R << 16 | clr.G << 8 | clr.B }</lang>