FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cambiar paleta de colores de un TImage
Buenas estoy haciendo una pequeña aplicación basada en el retoque fotografico es una aplicacion muy simple con lo que no llevara filtros ni nada eso, lo que quiero saber es como hago para, al utilizar 3 TTrackBar cambiar el color o la paleta de colores de un TImage o mejor dicho cambiar la paleta de colores de la imagen (picture) del TImage.
En otras palabras como lo que se hace en el photoshop unos 3 Tracbar para el RGB de la imagen. Bueno espero que me puedan ayudar. |
#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?? |
|
|
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 |
|