![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#2
|
|||
|
|||
|
Hola!
Quizás esto te ayude: Yo hago lo siguiente: Aca te lo copio y lo pego de mi codigo directamente. Esta en el evento de un TShape. Vos podes copiar desde el VAR hasta el ultimo END; y pegarlo donde lo necesites o hacer alguna funcion o procedimiento para que te sea mas facil de aplicar a muchos lados: procedure TFrmColorEditor.ShpVerdeMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer); VAR PNG : TPngImage; // Greamos un Tiamge de PNG - Agrega TPngImage al uses (delphi 2009 en adelante) i,j : INTEGER; RutaTemp : String; // Ruta de la imagen a utilizar (podes quitarlo si queres) col : TColor; // Color que vamos a aplicar begin RutaTemp := ExtractFilePath(ParamSTr(0)) + 'Temp\' + Form1.LblNAme.Caption; PNG := TPngImage.create; // Creamos el PNG TRY PNG.LoadFromFile(RutaTemp); Cargamos el PNG if Sender Is TShape then Col := TShape(Sender).Brush.Color; // Si lo esta enviando un objeto TSHAPE (podes utilizar lo que quieras) entonces la variable COLOR, se transforma en ese color. FOR j := 0 TO PNG.Height-1 DO //recorremos el alto de la imagen BEGIN FOR i := 0 TO PNG.Width-1 DO // recorremos el largo de la imagen BEGIN IF PNG.Canvas.Pixels[i,j] <> THEN PNG.Canvas.Pixels[i,j] := Col; Si el color no es negro puro (Yo lo necesitaba asi por motivos de transparencias) entonces pinta el pixel con el color de la variable COL END END; Image1.Picture.Graphic := PNG; // Cargamos la imagen en un TImage Image1.Picture.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Temp\' + Form1.LblNAme.caption); Salvamos FINALLY PNG.Free // Liberamos PNGImage END; end; Este es mi código, ahora lo que te sugiero es que hagas dentro de un Scroll o Slider y la variable TColor (COL) la uses asi: 3 Sliders SliderRojo, SliderVerde, SliderAzul Setea los Slider MIN = 0 MAX = 255 En el evento Change de cada Slider pongas Col := RGB(SliderRojo.value,SliderVerde.value,SliderAzul.value); Y listo! Se entendio algo?? ![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Como cambiar las cloordenadas de un Timage ? | gontxalo | Gráficos | 2 | 03-08-2005 12:08:06 |
| Paleta de colores | jdattoli | Gráficos | 7 | 03-06-2005 22:17:05 |
| Cambiar colores a la imagen | maravert | Gráficos | 3 | 07-03-2005 09:57:44 |
| Se puede cambiar imagen en el mismo TImage? | alfredosg19 | Gráficos | 3 | 01-03-2005 08:13:51 |
| Asignar una paleta de 256 colores | aromero | Gráficos | 0 | 29-10-2004 01:28:45 |
|