Регистрация ·  Логин: Пароль: Запомнить   · Забыли пароль?




Ответить на тему
Автор Сообщение

Модератор
Аватара пользователя

С нами: 11 лет 4 месяца
Сообщения: 87029
Откуда: Красноярск
СССР

Сообщение 18 апр 2016, 18:42 

[Цитировать]

GuColor2Int - цвет пикселя под курсором, перевод цвета в строку или число и обратно


Год выпуска: 2014
Версия: 0.4 (FreeWare)
Разработчик: GuSoft
Разрядность: 32bit
Язык интерфейса: Русский
Таблэтка: Не требуется
Системные требования: XpSp3 и выше

Описание:

Мне редко, но при разработке появляется необходимость раскрасить что либо в тона чего либо (имеющийся сайт, логотип, прога и тп). На глаз - долго, особенно если есть нестандартные цвета. Как-то недавно меня это достало. Основная функция проги - аналог пипетки в фотошопе. Кому будет интересна: веб-дизайнерам, программистам. Может другие, конешна, есть средства для таких целей, не заморачивался. Программа не требует установки.

Что могёт:

1. 3 режима. Основной - показ координат и цвета пикселя под курсором - в числовом, текстовом (если виндовский "текстовый" стандарт из палитры, а там их много), 16-ричном и RGB - представлении
2. Обратный режим с выбором цвета из палитры
3. Обратный режим с вводом значений
4. Дополнительно - см. абзац "Обновления"

Примечание: Код основного модуля прилагается. Используйте на свое усмотрение. Бесплатно.

Доп. информация:

1. Чтобы скопировать результат - окно должно быть в фокусе (активно). Хотя окно проги имеет статус "поверх всех", все же оно должно быть выделено для копирования результатов. В этом случае - действует комбинация клавиш "Ctrl+U" - копирует результат в текстовый буфер обмена.
2. По 3 режиму. Примеры ввода для преобразования даны сверху в окошке при переключении на режим. Чтобы ввести цвет строкой - добавляйте "cl" - "clRed" например (ну да, все на англ.). Чтобы ввести 16-ричное значение - добавляйте $ перед ним - $12a6f. Числовое значение вводится обычно. Не верные значения или введенные за пределами диапазона - просто вызовут ошибку перевода или дадут 0 (черный цвет).

Обновления:
1. Добавлены форматы: Html, Hsv, Cmyk
2. Добавлен перевод строк из html (пример #FFE4C4)
3. Диалог вызова палитры заменен на выпадающий цветной список со стандартными цветами Windows, для вызова палитры теперь необходимо выбрать в этом списке элемент "Выбор..." (первый в списке, над черным)
4. Добавлена кнопка запуска Windows Лупы
5. Добавлен выбор из стандартных Html цветов, с указанием их значений
Нацарапал "для себя", мог где то что-то накосячить. Найдете где - пишите в комменты.Код:
Код:
Unit GuC2IMainUnit; / GuColor2Int, 0.3, Delphi Rad Xe6, GuSoft (C), 2014

Interface

Uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Clipbrd;

Type
  TGuColor2IntMainForm = class(TForm)
    Timer1: TTimer;
    Panel1: TPanel;
    ColorDialog1: TColorDialog;
    Panel2: TPanel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Button1: TButton;
    Label1: TLabel;
    Panel3: TPanel;
    RadioButton3: TRadioButton;
    Edit1: TEdit;
    Button2: TButton;
    Label2: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure RadioButton3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Label2Click(Sender: TObject);
  private
    { Private declarations }
    Procedure Gu(Const Color:TColor);
    Function DskColor(Const x,y: NativeInt): TColor;
  public
    { Public declarations }
  end;

Var GuColor2IntMainForm: TGuColor2IntMainForm;

Implementation

{$R *.dfm}

Function TGuColor2IntMainForm.DskColor(Const x,y: NativeInt): TColor;
Var c:TCanvas;
begin
c:=TCanvas.Create;c.Handle:=GetWindowDC(GetDesktopWindow);Result:=GetPixel(c.Handle,x,y);c.Free;
end;

procedure TGuColor2IntMainForm.Button1Click(Sender: TObject);
begin
if ColorDialog1.Execute then Gu(ColorDialog1.Color);
end;

procedure TGuColor2IntMainForm.RadioButton1Click(Sender: TObject);
begin
Timer1.Enabled:=true;Button1.Enabled:=False;Button2.Enabled:=False;
end;

procedure TGuColor2IntMainForm.RadioButton2Click(Sender: TObject);
begin
Timer1.Enabled:=False;Panel2.Caption:='Выбор. Выберите цвет из палитры';Button1.Enabled:=True;
Panel1.Caption:='Ожидание выбора';Panel3.Color:=clBtnFace;panel3.Font.Color:=clBlack;Button2.Enabled:=False;
end;

procedure TGuColor2IntMainForm.RadioButton3Click(Sender: TObject);
begin
Timer1.Enabled:=False;Panel2.Caption:='Перевод. Примеры ввода: 12345, clRed, $AB123F';Button1.Enabled:=False;Button2.Enabled:=True;
Panel1.Caption:='Ожидание ввода';Panel3.Color:=clBtnFace;Panel3.Font.Color:=clBlack;
end;

procedure TGuColor2IntMainForm.Button2Click(Sender: TObject);
begin
Try
if Edit1.Text<>'' then Gu(StringToColor(Edit1.Text));
Except
Panel3.Color:=clBtnFace;Panel1.Caption:='Ошибка перевода';Panel3.Font.Color:=clBlack;
End;
end;

procedure TGuColor2IntMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Shift=[ssCtrl])and(Key=85){U} then Clipboard.AsText:=Panel2.Caption+' - '+Panel1.Caption;
end;

Procedure TGuColor2IntMainForm.Gu(Const Color:TColor);
Var R,G,B:byte; S:String;
begin
R:=GetRValue(Color); G:=GetGValue(Color); B:=GetBValue(Color); If Not ColorToIdent(Color,s) then s:='' else s:=', Str: '+s;
Panel1.Caption:='Int: '+IntToStr(Color)+', RGB: '+IntToStr(r)+':'+IntToStr(g)+':'+IntToStr(b)+', Hex: '+IntToHex(color,6)+s;
Panel3.Color:=Color; Panel3.Font.Color:=Color Xor $FFFFFF;
end;

procedure TGuColor2IntMainForm.Timer1Timer(Sender: TObject);
Var pos:TPoint;
begin
GetCursorPos(Pos); Gu(DskColor(pos.x, pos.y));
Panel2.Caption:='X: '+IntToStr(pos.x)+' ('+IntToStr(Screen.Width)+'), Y:'+IntToStr(pos.y)+' ('+IntToStr(Screen.Height)+')';
end;

end.

Буду рад, если кому пригодится. Проверка на VT: тут. Еще моя прога: .
Download
Для скачивания .torrent файлов необходима регистрация
Сайт не распространяет и не хранит электронные версии произведений, а лишь предоставляет доступ к создаваемому пользователями каталогу ссылок на торрент-файлы, которые содержат только списки хеш-сумм

Страница 1 из 1

Ответить на тему

   Похожие торренты   Торрент