Grayscale image: Difference between revisions

Content deleted Content added
m →‎{{header|REXX}}: added DO-END labels, added a comment. -- ~~~~
Added BBC BASIC
Line 41:
return Result;
end Color;</lang>
 
=={{header|BBC BASIC}}==
{{works with|BBC BASIC for Windows}}
This uses the formula for gamma-corrected images, which is more appropriate to this task (see discussion page).
[[Image:original_bbc.jpg|right]]
[[Image:greyscale_bbc.jpg|right]]
<lang bbcbasic> Width% = 200
Height% = 200
VDU 23,22,Width%;Height%;8,16,16,128
*display c:\lena
FOR y% = 0 TO Height%-1
FOR x% = 0 TO Width%-1
rgb% = FNgetpixel(x%,y%)
r% = rgb% >> 16
g% = (rgb% >> 8) AND &FF
b% = rgb% AND &FF
l% = INT(0.3*r% + 0.59*g% + 0.11*b% + 0.5)
PROCsetpixel(x%,y%,l%,l%,l%)
NEXT
NEXT y%
END
DEF PROCsetpixel(x%,y%,r%,g%,b%)
COLOUR 1,r%,g%,b%
GCOL 1
LINE x%*2,y%*2,x%*2,y%*2
ENDPROC
DEF FNgetpixel(x%,y%)
LOCAL col%
col% = TINT(x%*2,y%*2)
SWAP ?^col%,?(^col%+2)
= col%</lang>
 
=={{header|C}}==