![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Код цвета [D7, WinXP]
nordic3 © (2006-09-01 21:03:00)Как при нажатии кнопки в Edit записать код пиксела Image?
Собственно проблема: преобразовать TColor в string.
И причем не должно быть всяких clBlue или clRed. Только код типа $00FF00FF.
vrem (2006-09-03 20:55:00) [1]function divdw(col:longword; he:byte):byte; //col = цвет, he: 0=pal, 1=B, 2=G, 3=R, result - выбранный байт из 4-х
asm
mov ecx,eax
cmp dl,0
je @@1
shl ecx,8
cmp dl,1
je @@1
shl ecx,8
cmp dl,2
je @@1
shl ecx,8
@@1: shld eax,ecx,8
end;
Gydvin (2006-09-03 20:20:00) [2]а чем функции colortostring, stringtocolor не устраивают?
PSPF2003 (2006-09-03 18:05:00) [3]Col := Image1.Canvas.Pixels[125, 125];
Edit1.Text := '$' + IntToHex(Col, 2);
nordic3 (2006-09-03 17:59:00) [4]Вот более точный вопрос:
нажимаешь на кнопку, в Edit пишется код (типа $00FF00FF) цвета [5,5]пиксела из Image!
Пожалуйста, можно подробный пример!
Vovan#1 (2006-09-02 18:48:00) [5]Начиная с какой-то версии (с 6-ой?) Delphi есть в стандартной поставке модуль GraphUtil:
uses GraphUtil;
{ Converts a TColor to a Web color constant like #FFFFFF }
function ColorToWebColorStr(Color: TColor): string;
Её код:
function ColorToWebColorStr(Color: TColor): string;
var
RGB: Integer;
begin
RGB := ColorToRGB(Color);
Result := UpperCase(Format('#%.2x%.2x%.2x', [GetRValue(RGB),
GetGValue(RGB), GetBValue(RGB)])); { do not localize }
end;
Германн (2006-09-02 01:31:00) [6]
> Anatoly Podgoretsky © (02.09.06 00:09) [4]
>
> nordic3 (01.09.06 21:08) [2]
> TColor это не RGB, поэтому его надо преобразовывать.
Так в сабже никто и не просил преобразовывать в RGB. Так что действительно достаточно IntToHex(PixelColor,8);
Но вот только неясна суть замысла. Зачем его записывать в Edit?
Anatoly Podgoretsky (2006-09-02 00:09:00) [7]nordic3 (01.09.06 21:08) [2]
TColor это не RGB, поэтому его надо преобразовывать.
Если надо именно так $00FF00FF, то достаточно IntToHex, но это опять же не RGB, а Integer в hex нотации. RGB будет если перевернуть. А так это Palette, B, G, R
Loginov Dmitry (2006-09-01 22:24:00) [8]IntToHex()
nordic3 (2006-09-01 21:08:00) [9]А можно по-подробнее?
Anatoly Podgoretsky (2006-09-01 21:07:00) [10]Придется переводить TColor в RGB, ну а дальше побайтно в hex