|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Эксперементы с Canvas
У меня вопрос каким образом можно организовать управление гаммой, палитрой контактностью для 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; |