dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Função para cortar imagens

Já precisou cortar ou copiar apenas parte de uma imagem?

Esta função simplifica bastante este trabalho:

Lembre o uses
Vcl.Graphics, Winapi.Windows.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function CortarImagem(Imagem: TGraphic; Valores: TRect): TBitmap;
var
  bmp, tbmp: TBitmap;
  drect: TRect;
begin
  bmp := TBitmap.Create;
  bmp.Height := Valores.Bottom - Valores.Top;
  bmp.Width := Valores.Right - Valores.Left;
  drect := Bounds(0, 0, bmp.Width, bmp.Height);
 
  tbmp := TBitmap.Create;
  try
    tbmp.Height := Imagem.Height;
    tbmp.Width := Imagem.Width;
    tbmp.Canvas.Draw(0, 0, Imagem);
    bmp.Canvas.CopyRect(drect, tbmp.Canvas, Valores);
    Result := bmp;
  finally
    tbmp.Free;
  end;
end;

Exemplo de uso

1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Picture.bitmap := CortarImagem(Image1.Picture.Graphic,
    Bounds(62, 0, Image1.Picture.Width - 70, Image1.Picture.Height - 46));
end;

Veja que foi passado por parâmetro a imagem original,
a posição iniciar a esquerda para começar a cópia,
a posição iniciar superior,
quantidade em pixels da largura,
quantidade de pixels de altura.

A função resulta em um TBitmap, que no exemplo por
exibido em um TImage.

Dúvidas ou sugestões, deixe nos comentários do post.

  • Giovani Da Cruz
  • 1 comentários
  • 14 de novembro de 2016

Uma resposta para “Função para cortar imagens”

  1. Thiago disse:

    Bom dia, fucionou beleza, porem ela deixa objeto (tbmp := TBitmap.Create) na memoria que vai pesando a aplicação. Não consegui resolver pois se der free nesse objeto a imagem fica null. Sabe como resolver ?

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados