Mudar cores da TImage, usando TColorDialog

Delphi

15/11/2007

Estou com um problema:
Gostaria de colorir um componente Image: no lugar da cor verde lima da imagem abaixo (poder mudar na cor que escolher conforme o exemplo)

Não vou conseguir desenhar carinhas iguais com cores diferentes, porque temos milhares de cores né? :?



Lucas.bernieri

Lucas.bernieri

Curtidas 0

Respostas

Micheus

Micheus

15/11/2007

Se vc puder informar uma posição na imagem em que a cor a ser trocada está, então vc pode utilizar o método FloodFill da classe TCanvas.

Vamos supor que vc processe o evento OnClick do Image1, de modo que vc poderá obter a cor no ponto clicado, e selecionando a cor desejada preenche todos os pontos vizinhos que contém a mesma cor. O código seria mais ou menos este:
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  SrcColor :TColor;
begin
 // obtém a cor na posição que o mouse foi clicado
  SrcColor := Image1.Canvas.Pixels[X, Y];
  if ColorDialog1.Execute then
  begin
  // define a cor a ser utilizada no preenchimento
    Image1.Canvas.Brush.Color := ColorDialog1.Color;  // cor do preenchimento
    Image1.Canvas.FloodFill(X, Y, SrcColor, fsSurface);
  end;
end;


Abraços


GOSTEI 0
Lucas.bernieri

Lucas.bernieri

15/11/2007

Obrigado pela Ajuda

Valeu!!!!
:lol:


GOSTEI 0
POSTAR