Para aplicar um filtro de cor a um componente TImage em Delphi, você pode usar manipulação direta dos pixels da imagem.
Aqui está um exemplo simples de como aplicar um filtro de cor (nesse caso, um filtro vermelho) a um TImage:
uses SysUtils, Classes, Graphics, ExtCtrls, JPEG; procedure ApplyColorFilter(Image: TImage; RedFactor, GreenFactor, BlueFactor: Single); var Bitmap: TBitmap; X, Y: Integer; R, G, B: Byte; begin if (Image.Picture.Graphic = nil) or not (Image.Picture.Graphic is TBitmap) then Exit; Bitmap := TBitmap.Create; try Bitmap.Assign(Image.Picture.Graphic); for X := 0 to Bitmap.Width - 1 do begin for Y := 0 to Bitmap.Height - 1 do begin // Obtém o valor dos componentes de cor (R, G, B) do pixel R := GetRValue(Bitmap.Canvas.Pixels[X, Y]); G := GetGValue(Bitmap.Canvas.Pixels[X, Y]); B := GetBValue(Bitmap.Canvas.Pixels[X, Y]); // Aplica o filtro de cor multiplicando os valores dos componentes de cor pelos fatores R := Round(R * RedFactor); G := Round(G * GreenFactor); B := Round(B * BlueFactor); // Define a cor modificada no pixel Bitmap.Canvas.Pixels[X, Y] := RGB(R, G, B); end; end; // Atualiza o componente TImage com a imagem filtrada Image.Picture.Bitmap.Assign(Bitmap); finally Bitmap.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin // Aplica um filtro vermelho (aumentando o canal vermelho) ApplyColorFilter(Image1, 2.0, 0.5, 0.5); end;
Neste exemplo, criamos uma função ApplyColorFilter que recebe um componente TImage e fatores de cor para os canais vermelho, verde e azul.
A função lê os pixels da imagem, aplica o filtro multiplicando os valores dos componentes de cor pelos fatores especificados e, em seguida, atualiza a imagem no componente TImage com a imagem filtrada.
No evento OnClick de um botão (Button1 neste exemplo), chamamos a função ApplyColorFilter para aplicar um filtro vermelho à imagem no TImage (Image1 neste exemplo).
Você pode ajustar os fatores de cor conforme necessário para criar diferentes efeitos de filtro.
Utilizamos cookies e outras tecnologias semelhantes para melhorar a sua experiência no nosso site.
Ao continuar navegando, você declara que está de acordo com a nossa política de privacidade.
Copyright © TyttoSoft 2018 | Desenvolvido por www.TyttoSoft.com.br