Grayscale image: Difference between revisions

Content deleted Content added
Line 382: Line 382:
return image
return image
end function</lang>
end function</lang>

=={{header|FBSL}}==
24-bpp BMP-format P.O.T.-size image solution:
[[Image:FBSLLena.png|right]]
<lang qbasic>DIM colored = ".\LenaClr.bmp", grayscale = ".\LenaGry.bmp"
DIM head, tail, r, g, b, l, ptr, blobsize = 54 ' sizeof BMP file headers

FILEGET(FILEOPEN(colored, BINARY), FILELEN(colored)): FILECLOSE(FILEOPEN) ' load buffer
head = @FILEGET + blobsize: tail = @FILEGET + FILELEN ' set loop bounds

FOR ptr = head TO tail STEP 3 ' transform color triplets
b = PEEK(ptr + 0, 1) ' read Windows colors stored in BGR format
g = PEEK(ptr + 1, 1)
r = PEEK(ptr + 2, 1)
l = 0.2126 * r + 0.7152 * g + 0.0722 * b ' derive luminance
SETMEM(FILEGET, RGB(l, l, l), ptr - head + blobsize, 3) ' write grayscale
NEXT

FILEPUT(FILEOPEN(grayscale, BINARY_NEW), FILEGET): FILECLOSE(FILEOPEN) ' save buffer</lang>


=={{header|Forth}}==
=={{header|Forth}}==