Показать сообщение отдельно
Старый 29.06.2010, 14:56   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Обезцветить спрайт

Можно пройтись по пиксмапе грейскейлом.

Local Pixmap:TPixmap LockImage(Image
For 
Local Y% = 0 Until Pixmap.Height
        
For Local X% = 0 Until Pixmap.width
                Local ARGB
% = ReadPixel(PixmapX%, Y%) 
                
Local R% = (ARGB & $00FF0000Shr 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)

Писал в браузере - мод допустить ляпы
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
is.SarCasm (29.06.2010), teremochek (29.06.2010)