![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как преобразовать Integer Delphi цвет в Hex для PhotoShop?
Kolan © (2007-12-04 10:10:00)Для Delphi 128 это бордовый(Maroon). Как из этого числа получить теперь нех код 80 00 00, который обозначает то же цвет, но для PhotoShop'а?
Не программно, а так на калькуляторе не врублюсь че на че делить
Dib@zol (2007-12-04 11:12:00) [1]Ну как всегда. Опоздал)))
function GetHTMLColor(D:DWORD):PChar;
asm
PUSH EBX;
PUSH ECX;
PUSH EDX;
PUSH EDI;
MOV EBX, EAX;
PUSH 9;
CALL GetMemory;
POP EDX;
XOR EDX, EDX;
XCHG EAX, EBX;
MOV EDI, 10h;
DEC EBX;
MOV BYTE PTR [EBX+9], 0;
MOV ECX, 6;
@loop:
IDIV EDI;
CMP DL, 0Ah;
JL @less;
ADD DL, 07h;
@less:
ADD DL, 30h;
MOV BYTE PTR [EBX+ECX], DL;
XOR DL, DL;
LOOP @loop;
MOV AX, WORD PTR [EBX+1];
MOV CX, WORD PTR [EBX+3];
MOV DX, WORD PTR [EBX+5];
MOV WORD PTR [EBX+1], DX;
MOV BYTE PTR [EBX+3], 20h;
MOV WORD PTR [EBX+4], CX;
MOV BYTE PTR [EBX+6], 20h;
MOV WORD PTR [EBX+7], AX;
MOV EAX, EBX;
INC EAX;
POP EDI;
POP EDX;
POP ECX;
POP EBX;
end;
Kolan (2007-12-04 11:00:00) [2]> Может не надо пытаться работать как с Integer,
Все, благодарю. Написал маленькую программу, сделал то что надо.
Anatoly Podgoretsky (2007-12-04 10:59:00) [3]Может не надо пытаться работать как с Integer, а перейти на RGB - это уже массив из трех байт, где а[0] это R и т.д.
Kolan (2007-12-04 10:52:00) [4]
> а тут уже строка… Ну да ладно.
Ну так как я не понял че на че делить я изменил строку.
> ] Игорь Шевченко © (04.12.07 10:41)
Благодарю.
Игорь Шевченко (2007-12-04 10:41:00) [5]uses
GraphUtil
function ColorToWebColorStr(Color: TColor): string;
или
var
RGB: Integer;
begin
RGB := ColorToRGB(Color);
Result := UpperCase(Format('#%.2x%.2x%.2x', [GetRValue(RGB),
GetGValue(RGB), GetBValue(RGB)]));
homm (2007-12-04 10:39:00) [6]> [8] Kolan © (04.12.07 10:37)
Ну и бардак :)
> [0] Kolan © (04.12.07 10:10)
> Не программно, а так на калькуляторе — не врублюсь че на
> че делить…
а тут уже строка… Ну да ладно.
Kolan (2007-12-04 10:37:00) [7]> Какой еше строке?
Нех строке вестимо.
Короче сделал так и сё работает:
Result := Result[5]+Result[6]+Result[3]+Result[4]+Result[1]+Result[2];
Ответ найден, благодарю.
homm (2007-12-04 10:27:00) [8]Какой еше строке?
Kolan (2007-12-04 10:26:00) [9]
> Переставить красный и синий каналы местами.
Як? Прам в строке?
homm (2007-12-04 10:22:00) [10]> [4] Kolan © (04.12.07 10:21)
> В вот в фотошопе это 80 00 00
Ну дак?
Переставить красный и синий каналы местами.
В чем проблема?
Kolan (2007-12-04 10:21:00) [11]
> Нет, для дельфи 128 это $00000080.
Да
В вот в фотошопе это 80 00 00
Kolan (2007-12-04 10:19:00) [12]> ColorToRGB
Получилось наоборот, там же BGR
128
|
Result := IntToHex(ColorToRGB(TColor(Val)), 6);
|
000080 получилось
homm (2007-12-04 10:14:00) [13]> Как преобразовать Integer Delphi цвет в Hex для PhotoShop
Прожуй.
> Для Delphi 128 — это бордовый(Maroon).
Нет, для дельфи 128 это $00000080.
> Как из этого числа получить теперь нех код 80 00 00
Переставить красный и синий каналы местами?
Игорь Шевченко (2007-12-04 10:11:00) [14]ColorToRGB ?