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

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

N0iD

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

<!--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

Гость
#2
Совсем случайным образом нашёл вот этот вот сайт http://www.efg2.com
Ну так вот там есть пример размытости\жесткости. http://www.efg2.com/Lab/ImageProcessing/Feathering.htm
Там-же нашёл про смешивание цвета. http://www.efg2.com/Lab/Graphics/Colors/ColorMix.htm

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

as-is

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

Xakep

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

as-is

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

EdgarWine

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

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

N0iD

Гость
#8
В продолжение темы, так как для меня она так толком и не понятна, я нашел компонет для работы с планшетом из под дельфи.
Delphi Tablet Component 1.3
http://depositfiles.com/files/9ovhhqpiu

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

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

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

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

N0iD

Гость
#9
EdgarWine
>Опишите попроще как это "размытие/твёрдость"