PDA

Ver la Versión Completa : pintar de diferente color a una imagen


Chai
07-07-2006, 01:48:23
hola a todos, deseo saber como puedo pintar las areas q forman mi imagen de diferentes colores.. yo le cargo a mi imagen con timagen.. pero no se como hacer q el usuario escoja un color y le pinte alguna area de un color:o

Neftali [Germán.Estévez]
07-07-2006, 10:10:47
TImage posee un TCanvas y en el TCanvas puedes encontrar el método FloodFill, que te permite pintar un area de una imagen de un color; El área de la imagen debe ser de un único color o delimitada por un borde (creo recordar).
No te servirá, por ejemplo, para pintar sobre una foto.

Chai
25-07-2006, 17:31:30
hola Neftali, mira estuve utilizando floodfill, pero creo que estoy haciendo algo mal por que hago que se rellene la parte de afuera de la imagen, no se creo que estoy entiendo mal el funcionamiento de floodfill, me podria explicar mejor por favor... gracias

Neftali [Germán.Estévez]
25-07-2006, 17:37:28
No se cómo lo está utilizando, tal vez si pones el código..., pero la ayuda está bastante clara:

fsSurface Fill all area that has the color indicated by the Color parameter. Stop when another color is encountered.
fsBorder Fill all area that does not have the color indicated by the Color parameter. Stop when Color is encountered.

Chai
10-08-2006, 02:41:37
hola disculpeme que te vuelva a molestar.. al hacer click en el area donde quiero que se me pinte a veces se pinta ahi y otras veces se pinta en cualquier parte del dibujo... por fis ayudeme.. ahi te envio el codigo, indiqueme cual es el error
gracias
1.-Declaro las variables para la posicion donde quiero que pinte;
private
{ Private declarations }
XRaton, YRaton:integer;

2.- Pongo un image y en los eventos pongo lo siguiente:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
XRaton:=X;
YRaton:=Y;
end;
3.- La posición XRaton y YRaton no me coje porque no me pinta donde esta ubicado el cursor
procedure TForm1.Image1Click(Sender: TObject);
begin
image1.canvas.brush.color:=clred;
image1.Canvas.FloodFill(XRaton,YRaton,clblack,fsborder);
end;

Neftali [Germán.Estévez]
10-08-2006, 17:09:12
image1.canvas.brush.color:=clred;
image1.Canvas.FloodFill(XRaton,YRaton,clblack,fsborder);


A mi esto me funciona correctamente.
Me pinta de color rojo desde el punto marcado hasta que encuentra algo de color negro (en ese punto para de pintar).

Chai
27-10-2006, 17:21:54
:o hola

discupa por no haber escrito, problemillas q no me permitian, agradesco tu ayuda me sirvio y si encontre mi error el por que no se me pintaba la imagen..muchas gracias.. amiga:o

Lepe
27-10-2006, 18:36:25
muchas gracias.. amiga
Neftali, ¿Cuando te has hecho la operación de cambio de sexo? :D :D

Neftali [Germán.Estévez]
30-10-2006, 10:55:15
Neftali, ¿Cuando te has hecho la operación de cambio de sexo? :D :D

Y lo peor no es eso,... ¡¡Es que me lo han hecho sin que yo me entere y no se nota nada, nada, nada!!!!! :D:D:D

Neftalí es un nombre de origen hebreo (en ningun sitio se dice que sea de niña) y que significa "el luchador, el que lucha, al que Dios ayuda en la lucha (para los más creyentes)" y que me viene (el apodo) de mis tiempos en la facultad. Lo sigo conservando, auqnue ya hece unos cuantos "añitos" de eso... ...o no tantos...;)