Imagens e Fotos em Delphi e Lazarus (TImage e TDBImage)

TImage Delphi e Lazarus

Fala galera da programação, tudo beleza? O Assunto de hoje Imagens com o Delphi e Lazarus.

Tanto em Delphi como em Lazarus, carregar, salvar e excluir imagens no aplicativo é muito fácil. Eles oferece várias classes e componentes para gerenciar imagens em seus programas. Podemos usar componentes úteis como TImage e TDBImage para carregar e salvar imagens. TImage é usado para salvar ou carregar uma imagem em ou de um arquivo. E TDBImage é usado para salvar ou carregar uma imagem de ou para um banco de dados. Vamos verificar em detalhes.

 

TImage (Disponível em Delphi e Lazarus)

O Componente TImage pode exibir uma imagem de arquivos que terminam em diversas extensões, como por exemplo, ICO, BMP, WMF, WMF, GIF e JPG. A propriedade Picture especifica a imagem que irá aparecer no componente.

Ambas IDEs suportam vários métodos diferentes para atribuir uma imagem para o componente TImage: um método LoadFromFile do TPicture lê gráficos do disco ou o método Assign obtém a imagem da área de transferência.

Abaixo veja algumas propriedades do TImage:

Vejamos alguns exemplos:

Primeiro coloque um TImage em algum formulário juntamente com os componentes OpenPicturedialog e SavePicturedialog, uma vez que, eles serão responsáveis por mostrar onde carregar e salvar a imagem no computador.

 

Exemplo: Carregar imagem salva no computador

procedure TForm1.btnLoadImgClick(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    if OpenPictureDialog1.FileName<>'' then
    begin
      Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    end;
  end;
end;

 

Exemplo: Limpar uma imagem carregada no TImage

procedure TForm1.btnDelImgClick(Sender: TObject);
begin
  Image1.Picture := Nil;
  //Or//
  Image1.Picture.Assign(Nil);
end;

 

Exemplo: Salvar a imagem que esta no TImage no disco

procedure TForm1.btnSaveImgClick(Sender: TObject);
begin
  if SavePictureDialog1.Execute then
  begin
    if SavePictureDialog1.FileName<>'' then
    begin
      Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
    end;
  end;
end;

 

Para você ter uma ideia, meu projeto de exemplo ficou assim:

 

 

TDBImage (Disponível em Delphi e Lazarus)

O componente TDBImage é utilizado para exibir uma imagem armazenada em um banco de dados. Ao utilizar TDBImage podemos salvar e recuperar uma imagem diretamente do banco de dados. As propriedades Datasource e DataField especificam o campo do banco de dados que armazena a imagem e que será exibido no controle TDBImage.

Abaixo veja algumas propriedades do TDBImage:

Vejamos alguns exemplos:

Neste exemplo, crie uma aplicação com conexão com o banco de dados e coloque um TDBImage em algum formulário juntamente com os componentes OpenPicturedialog e SavePicturedialog, uma vez que, eles serão responsáveis por exibir onde carregar e salvar a imagem no computador. Também alimente as propriedades DataSource e DataField do TDBImage, conforme seu banco de dados. Assim você verá que o componente praticamente faz tudo p que precisa.

 

Exemplo com imagens e banco de dados

Agora vamos ver exemplos de como carregar e salvar imagens no banco de dados, nestes exemplos estamos usando os componentes de conexão ADO, mas podem ser adaptados facilmente para qualquer componente de conexão com o banco. Lembrando que os códigos são compatíveis tanto em Delphi como em Lazarus.

 

Salvando uma imagem no banco de dados

procedure TForm1.btnLoadImgClick(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    if OpenPictureDialog1.FileName<>'' then
    begin
         ADOTable1.Edit;         
         TBlobField(ADOTable1.FieldByName('IMAGE1')).
                                     LoadFromFile(OpenPictureDialog1.FileName);
         ADOTable1.Post;  //will store the image in DB field//
    end;
  end;
end;

 

Limpando o campo

procedure TForm1.btnDelImgClick(Sender: TObject);
begin
    ADOTable1.Edit;
    TBlobField(ADOTable1.FieldByName('IMAGE1')).Clear;
//or//
    TBlobField(ADOTable1.FieldByName('IMAGE1')).Assign(Nil);
    ADOTable1.Post;  //will clear the image from DB field//
end;

 

Salvando no disco uma imagem que estava no banco

procedure TForm1.btnSaveImgClick(Sender: TObject);
begin
  if SavePictureDialog1.Execute then
  begin
    if SavePictureDialog1.FileName<>'' then
    begin
       TBlobField(ADOTable1.FieldByName('IMAGE1')).
                                      SaveToFile(SavePictureDialog1.FileName);
    end;
  end;
end;

 

Conclusão

Em resumo, o uso do componente TImage oferece uma maneira eficiente e versátil de lidar com imagens em suas aplicações. Através deste post, exploramos como adicionar, exibir, carregar e salvar imagens usando o TImage, além de aprender a manipular dinamicamente as imagens em tempo de execução. Compreender esses conceitos não apenas permite criar interfaces visuais mais atrativas, mas também abre caminho para uma variedade de aplicações práticas, desde exibir ícones até processar e editar imagens. Ao dominar o uso do TImage e suas funcionalidades, os desenvolvedores Delphi e Lazarus podem criar aplicações mais ricas em recursos e visualmente impressionantes para seus usuários.

 

Beleza pessoal? Espero que possa ajudar.

 

Dúvidas ou sugestões? Deixe o seu comentário!

 

Um abraço e até o próximo post. Valeu!

 

#Delphi

#Lazarus

#DesenvolvimentoDeSoftware

#Imagens

#TImage

#GiovaniDaCruz

 

  • Publicado por Giovani Da Cruz
  • 0 comentarios
  • 4 de abril de 2024

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados a Categoria Delphi

Continue aprendendo

Aumente o seu conhecimento
Recuperar Parâmetros da Linha de Comando em Executáveis

Fala galera de programação, tudo beleza? Quando estamos criando um programa, temos a possibilidade de recuperar os valores informados nos parâmetros da linha de comando. Normalmente existe alguma que função retorna os argumentos passados ao programa quando ele é executado, permitindo que você lide com diferentes cenários de entrada de dados. Exemplo Prático Considere o […]

29 de junho de 2024
Sobrescrita e Sobrecarga de Métodos na Programação Orientada a Objetos

Fala galera da programação, tudo beleza? A programação orientada a objetos (POO) é um paradigma de programação que organiza o software em objetos, cada um contendo dados e comportamentos. Dois conceitos fundamentais nesse paradigma são a sobrescrita (override) e a sobrecarga (overload) de métodos. Ambos desempenham papéis cruciais na construção de software flexível, reutilizável e […]

15 de junho de 2024
Entendendo Class Helpers no Delphi

Fala galera da programação, tudo beleza? Você sabia que pode estender funcionalidades de classes existentes no Delphi sem modificar o código original? Hoje vamos descobrir como usar Class Helpers no Delphi para estender funcionalidades de classes existentes de maneira simples e eficiente!   Introdução Class Helpers são um recurso poderoso e prático introduzido no Delphi, […]

30 de maio de 2024
Funções Inline no Delphi: Otimizando o Desempenho do Seu Código

Fala galera de programação, tudo beleza? No desenvolvimento de software, a eficiência e a performance do código são aspectos cruciais, especialmente em aplicações que exigem alta performance ou que operam em ambientes com recursos limitados. Uma técnica disponível para desenvolvedores Delphi é a utilização de funções inline. Neste artigo, vamos explorar o que são funções […]

29 de maio de 2024
Entendendo Métodos Deprecated: O Que São e Como Lidar com Eles

Fala galera de programação, tudo beleza? No desenvolvimento de software, é comum nos depararmos com o termo “deprecated” (ou “obsoleto” em português). Mas o que isso significa exatamente? Vamos explorar esse conceito e entender sua importância no ciclo de vida do desenvolvimento de software.   O Que São Métodos Deprecated? Quando uma biblioteca ou framework […]

25 de maio de 2024
Como Fazer uma Requisição HTTP para Obter um JSON em Delphi

Fala galera de Delphi, tudo beleza? Neste post, vamos aprender como fazer uma requisição HTTP para obter um arquivo JSON a partir de uma URL em Delphi. Utilizaremos a biblioteca TNetHTTPClient, que é fácil de usar e está disponível nas versões mais recentes do Delphi.   Passos Iniciais Crie um novo projeto Delphi VCL ou […]

24 de maio de 2024
Explorando o Uso do “For Inline” em Delphi

Fala galera do Delphi, tudo beleza? Outro dia falando sobre Variáveis Inline no Delphi, o post foi bem comentado nas redes, então resolvi detalhar mais sobre o assunto e hoje vamos ver mais especificamente sobre o uso de Variáveis Inline em laços de repetição (“For Inline”)   Introdução O Delphi é uma linguagem de programação […]

21 de maio de 2024
Copiando o Registro Atual entre TClientDataSets em Delphi de Forma Genérica

Fala galera da programação, tudo beleza? Descubra como copiar de forma genérica o registro atual entre TClientDataSets em Delphi! Simplifique sua manipulação de dados e desenvolvimento de aplicativos com esta solução eficiente.   Introdução A manipulação eficaz de registros é crucial para o desenvolvimento de aplicativos robustos. No Delphi, a cópia precisa do registro atual […]

18 de maio de 2024
Explorando Variáveis Inline no Delphi: Uma Abordagem Aprofundada

Fala galera da Programação, tudo beleza? Descubra como otimizar seu código Delphi com variáveis inline! 🚀 No nosso novo artigo, exploramos como essa funcionalidade pode tornar seu desenvolvimento mais eficiente e seu código mais legível. Não perca esta oportunidade de aprimorar suas habilidades!   Introdução As variáveis inline são uma adição recente ao arsenal de […]

13 de maio de 2024
Como simular uma tecla ser pressionada em Delphi e Lazarus?

Fala galera da programação, tudo beleza? Descubra como simular o pressionamento de teclas em suas aplicações Delphi e Lazarus! Aprenda a automatizar tarefas e tornar suas interfaces mais interativas. Confira nosso novo artigo e impulsione seu desenvolvimento de software!   Introdução Você sabia que é possível simular o evento de pressionar de teclas em suas […]

12 de maio de 2024
Sair da versão mobile