• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Регулируемая прозрачность кисти для рисования

  • Автор темы N0iD
  • Дата начала
N

N0iD

Доброго времени суток. Столкнулся с такой вот проблемой.
Рисую на канве вот таким вот способом:

<!--shcode--><pre><code class='Delphi- пишу в версии 7'> public
{ Public declarations }

//Процесс рисования.
drawing:boolean;
...
...
...

procedure TMainformvg.ImageGraffitiMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//Установки кисти.
with ImageGraffiti.canvas do
begin
pen.width:=ShapeColor.Height;
drawing:=true;
moveto(x,y);
end;
//При нажатие не двигая рисуем.
If drawing then ImageGraffiti.canvas.lineto(x,y);
end;

procedure TMainformvg.ImageGraffitiMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
//Собственно рисуем :D
If drawing then ImageGraffiti.canvas.lineto(x,y);
end;

procedure TMainformvg.ImageGraffitiMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//Прекращаем рисовать.
Drawing:=false;
end;[/CODE]

Рисую как понятно из кода на канве TImage. Рисует великолепно, но хотелось бы узнать как можно реализовать прозрачность и размытие кисти(Твёрдость), так как это реализованно в фотошопе.

Даже представления не имею как это можно сделать. Думал может как то использовать PNG формат, ноувы нехватает тяму. Помогите :rolleyes:
 
N

N0iD

Совсем случайным образом нашёл вот этот вот сайт
Ну так вот там есть пример размытости\жесткости.
Там-же нашёл про смешивание цвета.

P.S. Для тех кому понадобиться.
Посидев день, так и не разобрался как же привязать все эти свойства. Вы уж меня простите я новенький, помогите :D
Выкладываю то что уже написал. ~ 80kb
Для новичков будет интересно.
 
A

as-is

Спасибо за примеры.
А вот можно не совсем по теме - вообще про рисовалки. Насколько здесь Delphi выигрывает по сравнению, например, с C++?
 
X

Xakep

а не проще использовать PNGImage нарисовал кисть в фотошопе, сохранил в формате png и рисуй себе на здоровье :)
 
A

as-is

Так в фотошопе есть и прозрачность, и нажим, причем это разные вещи. Особенно в инструменте "штамп".
 
E

EdgarWine

Сам TImage не может рисоваться на форме с полупрозрачностью - недостаток VCL...
реализовать прозрачность и размытие кисти(Твёрдость), так как это реализованно в фотошопе
Не юзал ФотоШоп, не знаю как там что... Опишите попроще как это "размытие/твёрдость"? Линии с антиалиасингом чтоль?

А языки программирования такие как Delphi, C++, VisualBasic - абсолютно никаких преимуществ друг перед другом не имеют... По существу - просто кому что привычнее...
Правильно сказали - всё решает прямота рук... Ну и Знания... ;)
 
N

N0iD

В продолжение темы, так как для меня она так толком и не понятна, я нашел компонет для работы с планшетом из под дельфи.
Delphi Tablet Component 1.3


Я думаю многие обрадуются этому дабы не лазить в доках по работе с драйверами планшетов. Собственно данный компонент был опробован с Wacom и Genius планшетами. В состав идет две демки, Одна показывает силу нажатия,а вторая показывает как рисовать.
При компилинге второй демки, там где нужно рисовать, вылазиет на строке "Open(AContext, True);" ошибка: "[Error] MappingUnit.pas(118): Too many actual parameters".

Прошу помощи, как это исправить. И было бы хорошо если бы выложили рабочий вариант второго примера, а именно из папки "Mapping".

было:
Код:
Open(AContext, true);

стало:
Код:
Open(AContext);
Программа из примера запускается, но реакции ноль на планшет. Проверял на Wacom и Genius/
 
N

N0iD

EdgarWine
>Опишите попроще как это "размытие/твёрдость"
b3fb78e30c7d.jpg
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!