C#
- Comparando Imagens
![]() |
Neste artigo vou apresentar um pequeno programa feito na linguagem C# que permite comparar se duas imagens são iguais. |
Neste artigo vou apresentar uma aplicação Windows Forms para iniciantes na linguagem C# onde podemos carregar duas imagens e comparar se as imagens são iguais.
Recursos Usados
Criando o projeto Windows Forms
Vamos criar um projeto bem simples do tipo Windows Forms usando a linguagem C#.
No formulário Form1.cs inclua os seguintes controles a partir da ToolBox:
2 LinkLabel - lnklbImagem1 e lnklbImagem2
2 PictureBox - picImagem1 e picImagem2
1 ProgressBar - 1 pgBar
3 Buttons - btnCompararImagens, btnLimpar e btnEncerrar
2 OpenFileDialog - ofd1 e ofd2
A seguir disponha os controles conforme mostra a figura abaixo:
Namespaces usados no projeto:
using System;
using System.Drawing;
using System.Windows.Forms;
Variáveis globais declaradas no formulário:
static string nomeArquivo1,
nomeArquivo2;
Bitmap img1, img2;
int contador1 = 0, contador2 = 0;
bool flag = true;
1- Evento Load do formulário
private void Form1_Load(object sender, EventArgs e)
{
pgBar1.Visible = false;
picImagem1.Visible = true;
picImagem2.Visible = true;
}
|
2- Evento Click do link da primeira imagem
private void lnklbImagem1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
ofd1.FileName = "";
ofd1.Title = "Imagens";
ofd1.Filter = "Todas Imagens|*.jpg; *.bmp; *.png";
pgBar1.Value = 0;
pgBar1.Visible = false;
ofd1.ShowDialog();
if (ofd1.FileName.ToString() != "")
{
nomeArquivo1 = ofd1.FileName.ToString();
picImagem1.Image = new Bitmap(nomeArquivo1);
}
}
|
3- Evento Click do link da segunda imagem
private void lnklbImagem2_LinkClicked(object sender,
LinkLabelLinkClickedEventArgs e) { ofd2.FileName = ""; ofd2.Title = "Imagens"; ofd2.Filter = "Todas Imagens|*.jpg; *.bmp; *.png";
ofd2.ShowDialog(); |
4- Evento Click do botão de comando Comparar Imagens
private
void btnCompararImagens_Click(object sender, EventArgs e) { pgBar1.Visible = true; btnLimpar.Enabled = true;
string img1_ref, img2_ref;
pgBar1.Maximum = img1.Width;
if (flag == false)
|
5- Evento Click dos botões Encerrar e Limpar:
private void btnEncerrar_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnLimpar_Click(object sender, EventArgs e)
{
picImagem1.Image = null;
picImagem2.Image = null;
pgBar1.Value = 0;
}
|
Executando o projeto teremos o seguinte resultado:
Eu não entrei em detalhes de otimização do código e talvez exista uma forma mais rápida de fazer a comparação entre duas imagens. Fique à vontade para pesquisar e melhorar o código.
Pegue o
projeto completo aqui :
ComparaImagens.zip
"Jesus disse-lhes: A minha comida é
fazer a vontade daquele que me enviou, e realizar a sua obra."
João 4:34
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a
Objetos com VB .NET
C# - Exibindo imagens com PictureBox e usando o ... - Macoratti.net