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}}== |