Можно пройтись по пиксмапе грейскейлом.
Local Pixmap:TPixmap = LockImage(Image)
For Local Y% = 0 Until Pixmap.Height
For Local X% = 0 Until Pixmap.width
Local ARGB% = ReadPixel(Pixmap, X%, Y%)
Local R% = (ARGB & $00FF0000) Shr 16 ' красный
Local G% = (ARGB & $0000FF00) Shr 8 ' зеленый
Local B% = (ARGB & $000000FF) ' синий компонент
Local i# = 0.2126 * R + 0.7152 * G + 0.0722 * B
R = i
G = i
B = i
WritePixel Pixmap, X, Y, $FF000000 + R Shl 16 + G Shl 8 + B
Next
Next
Вроде так.
Image - твоё изображение.
Операцию проводить единожды (не в цикле)
У изображения должен быть флаг DYNAMICIMAGE
Например: LoadImage("Image.bmp",
DYNAMICIMAGE)
Писал в браузере - мод допустить ляпы