![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть цвет RGB надо узнать какой цвет ему [D6, Win2k]
SDS © (2002-12-20 17:46:00)сооиыетствует в градациях серого
SDS (2002-12-21 11:11:00) [1]thanx
AlexT1000 (2002-12-21 10:35:00) [2]> MBo
сильно сказано. уважаю.
MBo (2002-12-21 07:33:00) [3]>неужели в API ничего похожего нет?
Сделай ;)
library GrayAPI;
uses
Graphics;
//в асме не спец, наверно, можно оптимизировать
Function ColorToGray(Color:TColor):byte;
asm
push eax
push eax
mov edx, $001C974D
and eax, 0ffh
mul dl
mov ecx, eax
pop eax
and eax, 0ff00h
shr eax, 8
shr edx, 8
mul dl
add eax, ecx
mov ecx, eax
pop eax
and eax, 0ff0000h
shr eax, 16
shr edx, 8
mul dl
add eax, ecx
mov ecx, 128
add eax, ecx
shr eax, 8
end;
exports ColorToGray;
end.
------------------------------------------------
function ColorToGray (Color:TColor):byte; external "GrayAPI.DLL";
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption:=IntToStr(ColorToGray(clLime));
end;
SDS (2002-12-20 18:19:00) [4]идея хорошая, но неужели в API ничего похожего нет?
MBo (2002-12-20 18:01:00) [5](59g+30r+11b)/100