Bitmap: Difference between revisions

1,353 bytes added ,  2 years ago
Added solution for Action!
m (→‎{{header|ARM Assembly}}: clarification on how the video memory works.)
(Added solution for Action!)
Line 91:
+--------------------+
</pre>
 
=={{header|Action!}}==
{{libheader|Action! Bitmap tools}}
<lang Action!>INCLUDE "H6:RGBIMAGE.ACT" ;from task Bitmap
 
RGB black,yellow,violet,blue
 
PROC DrawImage(RgbImage POINTER img BYTE x,y)
RGB c
BYTE i,j
 
FOR j=0 TO img.h-1
DO
FOR i=0 TO img.w-1
DO
GetRgbPixel(img,i,j,c)
IF RgbEqual(c,yellow) THEN
Color=1
ELSEIF RgbEqual(c,violet) THEN
Color=2
ELSEIF RgbEqual(c,blue) THEN
Color=3
ELSE
Color=0
FI
Plot(x+i,y+j)
OD
OD
RETURN
 
PROC Main()
RgbImage img
BYTE CH=$02FC,width=[80],height=[60]
BYTE ARRAY ptr(14400)
BYTE i,x,y,c
 
Graphics(7+16)
SetColor(0,13,12) ;yellow
SetColor(1,4,10) ;violet
SetColor(2,8,6) ;blue
SetColor(4,0,0) ;black
 
RgbBlack(black)
RgbYellow(yellow)
RgbViolet(violet)
RgbBlue(blue)
 
InitRgbImage(img,width,height,ptr)
FillRgbImage(img,blue)
 
FOR i=1 TO 1000
DO
c=Rand(3)
x=Rand(width)
y=Rand(height)
IF c=0 THEN
SetRgbPixel(img,x,y,yellow)
ELSEIF c=1 THEN
SetRgbPixel(img,x,y,violet)
ELSE
SetRgbPixel(img,x,y,black)
FI
OD
 
DrawImage(img,(160-width)/2,(96-height)/2)
 
DO UNTIL CH#$FF OD
CH=$FF
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Bitmap.png Screenshot from Atari 8-bit computer]
 
=={{header|ActionScript}}==
Anonymous user