![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | 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;  |