Dúvidas sobre manipulação de imagens
Olá!
Algumas dúvidas sobre manipulação de imagens:
1) Tenho em um form um botão que carrega uma foto para um TImage. Queria fazer um código que excluísse as última três linhas horizontais da imagem.
Ps.: Essa figura nem sempre será BMP. Pode ser JPG ou GIF.
Ps2.: E se eu quisesse fazer isso em todas as imagens que compõem um GIF animado sem fazer com que o gif deixe de ser animado?
2) Similarmente a pergunta anterior, como ficaria se eu quisesse pintar de branco essas últimas três linhas ao invés de excluir?
Mesmas observações da anterior.
Agradeço desde já!
Até!
Algumas dúvidas sobre manipulação de imagens:
1) Tenho em um form um botão que carrega uma foto para um TImage. Queria fazer um código que excluísse as última três linhas horizontais da imagem.
Ps.: Essa figura nem sempre será BMP. Pode ser JPG ou GIF.
Ps2.: E se eu quisesse fazer isso em todas as imagens que compõem um GIF animado sem fazer com que o gif deixe de ser animado?
2) Similarmente a pergunta anterior, como ficaria se eu quisesse pintar de branco essas últimas três linhas ao invés de excluir?
Mesmas observações da anterior.
Agradeço desde já!
Até!
Delphi32
Curtidas 0
Respostas
Michelli88
08/09/2005
...e eu quisesse pintar de branco essas últimas três linhas ao invés de excluir?
Voce poderia para desenhar um retangulo na frente da imagem.
GOSTEI 0
Delphi32
08/09/2005
eh, foi mais ou menos o q eu fiz...
na verdade, como eu já sei previamente que da linha 138 até a 149 e da coluna 0 até 149 deveria ter esse retângulo eu fiz o seguinte:
1) Converti o GIF para Bitmap
2)
var x,y:integer;
begin
for x := 138 to 149 do
for y:=0 to 149 do
vBitmap.Canvas.Pixels[x,y] := clWhite;
end;
3) Converti de volta para GIF.
E no caso de ser um GIF animado eu ainda não testei, mas o componente RxGifAnimator da RxLibrary que me permite acesar os frames do GIF da seguinte forma:
RxGIFAnimator1.Image.Frames[x].Bitmap
Essa linha me retorna em bitmap um dos frames do gif. Sendo assim eu posso facilmente substituí-lo por um outro bitmap já manipulado com a rotina anterior. Mas com o gif animado eu ainda não testei não... depois posto aqui pra dizer se funcionou ou não.
Valeu pela ajuda!
Até!
na verdade, como eu já sei previamente que da linha 138 até a 149 e da coluna 0 até 149 deveria ter esse retângulo eu fiz o seguinte:
1) Converti o GIF para Bitmap
2)
var x,y:integer;
begin
for x := 138 to 149 do
for y:=0 to 149 do
vBitmap.Canvas.Pixels[x,y] := clWhite;
end;
3) Converti de volta para GIF.
E no caso de ser um GIF animado eu ainda não testei, mas o componente RxGifAnimator da RxLibrary que me permite acesar os frames do GIF da seguinte forma:
RxGIFAnimator1.Image.Frames[x].Bitmap
Essa linha me retorna em bitmap um dos frames do gif. Sendo assim eu posso facilmente substituí-lo por um outro bitmap já manipulado com a rotina anterior. Mas com o gif animado eu ainda não testei não... depois posto aqui pra dizer se funcionou ou não.
Valeu pela ajuda!
Até!
GOSTEI 0