Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

Как преобразовать Integer Delphi цвет в Hex для PhotoShop?   Найти похожие ветки 

 
Kolan ©   (2007-12-04 10:10) [0]

Для Delphi 128 — это бордовый(Maroon). Как из этого числа получить теперь нех код 80 00 00, который обозначает то же цвет, но для PhotoShop"а?

Не программно, а так на калькуляторе — не врублюсь че на че делить&#133


 
Игорь Шевченко ©   (2007-12-04 10:11) [1]

ColorToRGB ?


 
homm ©   (2007-12-04 10:14) [2]

> Как преобразовать Integer Delphi цвет в Hex для PhotoShop

Прожуй.


> Для Delphi 128 — это бордовый(Maroon).

Нет, для дельфи 128 это $00000080.


> Как из этого числа получить теперь нех код 80 00 00

Переставить красный и синий каналы местами?


 
Kolan ©   (2007-12-04 10:19) [3]

> ColorToRGB

Получилось наоборот, там же BGR
128
|
Result := IntToHex(ColorToRGB(TColor(Val)), 6);
|
000080 получилось


 
Kolan ©   (2007-12-04 10:21) [4]


> Нет, для дельфи 128 это $00000080.

Да

В вот в фотошопе это 80 00 00


 
homm ©   (2007-12-04 10:22) [5]

> [4] Kolan ©   (04.12.07 10:21)
> В вот в фотошопе это 80 00 00

Ну дак?
Переставить красный и синий каналы местами.
В чем проблема?


 
Kolan ©   (2007-12-04 10:26) [6]


> Переставить красный и синий каналы местами.

Як? Прам в строке?


 
homm ©   (2007-12-04 10:27) [7]

Какой еше строке?


 
Kolan ©   (2007-12-04 10:37) [8]

> Какой еше строке?

Нех строке вестимо.

Короче сделал так и сё работает:
Result := Result[5]+Result[6]+Result[3]+Result[4]+Result[1]+Result[2];

Ответ найден, благодарю.


 
homm ©   (2007-12-04 10:39) [9]

> [8] Kolan ©   (04.12.07 10:37)

Ну и бардак :)


> [0] Kolan ©   (04.12.07 10:10)
> Не программно, а так на калькуляторе — не врублюсь че на
> че делить…

а тут уже строка… Ну да ладно.


 
Игорь Шевченко ©   (2007-12-04 10:41) [10]

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)]));


 
Kolan ©   (2007-12-04 10:52) [11]


> а тут уже строка… Ну да ладно.

Ну так как я не понял че на че делить я изменил строку.


> ] Игорь Шевченко ©   (04.12.07 10:41)

Благодарю.


 
Anatoly Podgoretsky ©   (2007-12-04 10:59) [12]

Может не надо пытаться работать как с Integer, а перейти на RGB - это уже массив из трех байт, где а[0] это R и т.д.


 
Kolan ©   (2007-12-04 11:00) [13]

> Может не надо пытаться работать как с Integer,

Все, благодарю. Написал маленькую программу, сделал то что надо.


 
Dib@zol ©   (2007-12-04 11:12) [14]

Ну как всегда. Опоздал)))

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;



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
15-1196317116
vasIZmax
2007-11-29 09:18
2007.12.30
Сбор файлов локалке


3-1188126422
Добрый
2007-08-26 15:07
2007.12.30
не могу сделать INSERT через ADO в MSSQL базу


15-1196343933
Anatoly Podgoretsky
2007-11-29 16:45
2007.12.30
Возможно интересно тем, кто хочет купить старые версии Дельфи


3-1187355915
alsov
2007-08-17 17:05
2007.12.30
Разница вызова запроса


15-1196333240
fleg
2007-11-29 13:47
2007.12.30
Books