|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Цвет Здравствуйте.  Как задать цвет точки a:=image1.Canvas.Pixels[45,45]; ________________________ a:=image1.Canvas.Pixels[45,45]:=clRed; выдаёт ошибку. | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Естественно... Ты сам то понимаешь, что пытаешься сделать этой строкой  a:=image1.Canvas.Pixels[45,45]:=clRed; ты можешь либо получить цвет точки a:=image1.Canvas.Pixels[45,45]; либо установить image1.Canvas.Pixels[45,45]:=clRed; других вариантов нет... | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   >Естественно... Ты сам то понимаешь, что пытаешься сделать этой строкой  >a:=image1.Canvas.Pixels[45,45]:=clRed; Конечно понимаю, но так как я новичок - поэтому и спросил (думал что можно как то по другому описать). Ладно тогда задача в следующем: надо сравнить две точки с одинаковыми координатами, но у одной точки цвет фиксированный (допустим красный), а вот вторая точка так как координаты определены на картинке то цвет её (точки) меняется (с каждым изменением картинки). Если цвет точки на картинке совпадают с цветом постоянной точки, то выполняется тото тото, а ежели нет то выполняется другое. Надеюсь я понятно изложил свои мысли. | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Вполне Код: if image1.Canvas.Pixels[45,45] = clRed then // Совпадает else // Не совпадает Код: if image1.Canvas.Pixels[45,45] = image2.Canvas.Pixels[5,5] then // Совпадает else // Не совпадает | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Я так понимаю у тебя два imag'а и ты сравниваешь пиксели этих imag'ов c одинаковыми координатами, тады: //-------------------------------- var Cl1,Cl2:TColor; begin Cl1:=Image1.canvas.pixel[x,y]; Cl2:=Image2.canvas.pixel[x,y]; if cl1=cl2 then (--твой код--) else (--твой код--); end; //-------------------------------- | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 Я так и написал - всё работает ,но есть одно но, координаты обоих пикселов всегда одинаковые, а надо чтобы срав нивался их цвет. | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   Ну дык Cl1=Cl2 - это и есть сравнение цветов пикселей с одинаковыми координатами. | 
| 
			 
			#8  
			
			
			
			
		 | |||
| 
 | |||
|   Врубился. Компонент Image один, и сравниваю я заранее заданный цвет с цветом рисунка. А как тогда задать цвет дапустим Cl1 ? var Cl1,Cl2:TColor; begin Cl1:=Image1.canvas.pixel[x,y]; Cl2:=Image1.Picture.canvas.pixel[x,y]; if cl1=cl2 then (--твой код--) else (--твой код--); end; Последний раз редактировалось CiSi, 17.12.2006 в 15:08. | 
| 
			 
			#9  
			
			
			
			
		 | |||
| 
 | |||
|   Тогда Если Image 1, то if Image1.canvas.pixels[x,y]=clRed then (--твой код--) else (--твой код--); или var Cl1:TColor; begin Cl1:=Image1.canvas.pixel[x,y]; //Задаешь цвет cl1 цвет точки c координатами x,y if cl1=clred then (--твой код--) else (--твой код--); end; Конечно, если тебе надо узнать RGB, то есть такие функции: R:=GetRValue(cl1); G:=GetGValue(cl1); B:=GetBValue(cl1); Последний раз редактировалось ART, 17.12.2006 в 15:14. | 
| 
			 
			#10  
			
			
			
			
		 | |||
| 
 | |||
|   Спасибо ART. я зделал так: //-------------------------- begin Image1.Canvas.Pixels[50,50]:= clred; if (Image1.canvas.pixels[50,50] = clred) and (image1.Picture.Bitmap.Canvas.Pixels[50,50]= clblack) then begin image1.Canvas.Brush.Color:=clred; image1.Canvas.Ellipse(50,50,10,20); end else image1.Canvas.Brush.Color:=clBlue; image1.Canvas.Ellipse(50,50,10,20); end; //------------------------------ Но как теперь зделать так чтобы на Image1 не рисовалась точка красным цветом, а запоминаля её цвет (не знаю можно ли так зделать - бредовая наверное идея). | 
| 
			 
			#11  
			
			
			
			
		 | |||
| 
 | |||
|   Что - то я не понял эту строчку: if (Image1.canvas.pixels[50,50] = clred) and (image.Picture.Bitmap.Canvas.Pixels[50,50]= clblack) then | 
| 
			 
			#12  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 Код: //Image1.Canvas.Pixels[50,50]:= clred; //if (Image1.canvas.pixels[50,50] = clred) and … then c1 := Image1.Canvas.Pixels[50,50]; // c1: TColor if (c1 = clred) and … then | 
| 
			 
			#13  
			
			
			
			
		 | |||
| 
 | |||
|   >Что - то я не понял эту строчку: >if (Image1.canvas.pixels[50,50] = clred) and (image.Picture.Bitmap.Canvas.Pixels[50,50]= clblack) then Извините опичатался: if (Image1.canvas.pixels[50,50] = clred) and (image.Picture.Bitmap.Canvas.Pixels[50,50]= clRed) then Дело вследующем: т. к. Image1.canvas.pixels[50,50]:= clred ранее присвоили красный цвет, то если Image1.canvas.pixels[50,50] = clred (а он полюбому будет красный) и image.Picture.Bitmap.Canvas.Pixels[50,50]= clRed (тоесть если точка на рисунке будет красной) то выполняется тото тото, а если условие не верно то выполняется что-то другое. Вот я ранее и спрашивал: Но как теперь зделать так чтобы на Image1 не рисовалась точка красным цветом, а запоминала её цвет (не знаю можно ли так зделать - бредовая наверное идея). Последний раз редактировалось CiSi, 17.12.2006 в 18:41. |