![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
У меня вопрос каким образом можно организовать управление гаммой, палитрой контактностью для canvas???
![]() |
|
#2
|
||||
|
||||
|
А что конкретно ты хочешь сделать?
Canvas - это просто холст на котором можно рисовать примитивы (линии, фигуры, текст)... |
|
#3
|
|||
|
|||
|
Короче говоря тема такая, смотри код ниже:
Код:
var
bitmap: tbitmap;
begin
bitmap: tbitmap.create;
try
bitmap.assign(image1.picture.bitmap);
form1.canvas.draw(0, 0, bitmap);
finally
bitmap.free;
end;
end;Поможешь разобраться??? ![]() |
|
#4
|
|||
|
|||
|
Делать это прямо на канве имхо глупо. Нужно все это сначала проделать с битмапом, а уже потом, выводить его на канву. Для гаммы, контрастности и и т.п. существуют специальные алгоритмы, которые можно найти в инете.
|
|
#5
|
|||
|
|||
|
Цитата:
Я спрашиваю помощи в первую очередь. |
|
#6
|
|||
|
|||
|
Ну бери каждый пиксель и преобразуй по алгоритму.
Код:
procedure MyProc(C: TCanvas; P1, P2: TPoint); var i, j: integer; begin for i := P1.y to P2.y do for j := P1.x to P2.x do C.Pixels[j, i] := Algoritm(C.Pixels[j, i]); end; |