Como alterar a cor da imagem?
Ola galera tudo bem? Aqui estou eu novamente recorrendo ao fórum para ver se tem como resolver uma duvida minha.
Bom é o seguinte, alguém sabe como eu mudo a saturação (acho que é esse o nome) de uma imagem pelo Delphi?
A imagem original é essa:
[IMG]http://i47.tinypic.com/2nvs8ch.jpg[/IMG]
Queria que ela ficasse assim avermelhada (ou qualquer outra cor desejada):
[IMG]http://i46.tinypic.com/sq4n83.jpg[/IMG]
Eu encontrei esse códigos abaixo pesquisando na net, porem eles deixa a imagem apenas sem cor (preta e branca). Eu tentei mudar para que ficasse como eu desejo, porem não consegui!
Código 1:
Código 2:
Observação: Eu gero essa imagem através de um print screen e salvo ela em uma variável do tipo TBitmap onde manipulo ela para depois mostrar em um componente TImage.
Bom é só isso se alguém puder postar um exemplo, ou talvez até de pra fazer nesses códigos mesmo que postei de repente, eu agradeço.
Obrigado a todos do fórum. Abraços
Bom é o seguinte, alguém sabe como eu mudo a saturação (acho que é esse o nome) de uma imagem pelo Delphi?
A imagem original é essa:
[IMG]http://i47.tinypic.com/2nvs8ch.jpg[/IMG]
Queria que ela ficasse assim avermelhada (ou qualquer outra cor desejada):
[IMG]http://i46.tinypic.com/sq4n83.jpg[/IMG]
Eu encontrei esse códigos abaixo pesquisando na net, porem eles deixa a imagem apenas sem cor (preta e branca). Eu tentei mudar para que ficasse como eu desejo, porem não consegui!
Código 1:
procedure efeito1;
var contador1, contador2:Integer;
vermelho, verde, azul:Integer;
tom:Integer;
begin
Self.DoubleBuffered:=True;
for contador1:=0 to Image1.Width do
begin
for contador2:=0 to Image1.Height do
begin
vermelho:=GetRValue(ColorToRGB(Image1.Picture.Bitmap.Canvas.Pixels[contador1, contador2]));
verde:=GetGValue(ColorToRGB(Image1.Picture.Bitmap.Canvas.Pixels[contador1, contador2]));
azul:=GetBValue(ColorToRGB(Image1.Picture.Bitmap.Canvas.Pixels[contador1, contador2]));
tom:=Round(vermelho * 0.3 + verde * 0.59 + azul * 0.11);
Image1.Picture.Bitmap.Canvas.Pixels[contador1, contador2]:=RGB(tom, tom, tom);
end;
end;
end;Código 2:
procedure efeito2;
var i, j:integer;
R, G, B:Integer;
Tom:Integer;
begin
for i:=0 to Image2.Width do
begin
for j:=0 to Image1.Width do
begin
R:=GetRValue(ColorToRGB(Image2.Picture.Bitmap.Canvas.Pixels[i, j]));
G:=GetGValue(ColorToRGB(Image2.Picture.Bitmap.Canvas.Pixels[i, j]));
B:=GetBValue(ColorToRGB(Image2.Picture.Bitmap.Canvas.Pixels[i, j]));
if R > G then
begin
if R > B then
Tom:=R
else
Tom:=B;
end
else
begin
if G > B then
Tom:=G
else
Tom:=B;
end;
Image2.Picture.Bitmap.Canvas.Pixels[i, j]:=RGB(Tom, Tom, Tom);
end;
end;
end;Observação: Eu gero essa imagem através de um print screen e salvo ela em uma variável do tipo TBitmap onde manipulo ela para depois mostrar em um componente TImage.
Bom é só isso se alguém puder postar um exemplo, ou talvez até de pra fazer nesses códigos mesmo que postei de repente, eu agradeço.
Obrigado a todos do fórum. Abraços
Carlos Catanduva
Curtidas 0
Respostas
Carlos Catanduva
08/05/2012
Não consegui postar a imagem, mais o link foi beleza. Será q ninguém sabe como deixar a imagem com uma cor prodominante?
GOSTEI 0