Thumbnail são versões reduzidas de imagem. Para criarmos um na nossa aplicação, vamos adicionar em um form um PictureBox, para exibir a imagem; e um Button para escolhermos a imagem. Ele ficará da seguinte forma:
private void button1_Click(object sender, EventArgs e)
{
//Por intermédio das streams é possível transportar dados como voz, vídeo, imagem, entre outros.
Stream stream = null;
// Abrir janela para buscar arquivo
OpenFileDialog openFileDialog = new OpenFileDialog();
// Diretório inicial
openFileDialog.InitialDirectory = "c:\\";
// Extensões permitidas (pode ser incluidas outras extensões)
openFileDialog.Filter = "jpg files (*.jpg)|*.jpg|png files (*.png)|*.png";
openFileDialog.RestoreDirectory = true;
// Se clicar no botão abrir
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
// Verificação se existe arquivo escolhido
if ((stream = openFileDialog.OpenFile()) != null)
{
using (stream)
{
// Instanciando um Bitmap que receberá as informações do arquivo
Bitmap bitmap = new Bitmap(stream);
try
{
// Variável do tipo Guid recebendo do método Guid.NewGuid() o próximo ID da empresa
Guid idEmpresa = Guid.NewGuid();
// Informa o local onde será salvo o thumbnail
string local = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Arquivos";
// Verifica se não existe o diretório
if (!Directory.Exists("Arquivos"))
{
// Cria o diretório
System.IO.Directory.CreateDirectory(local);
}
// Passando o endereço da pasta Arquivo e informando o nome do arquivo adicionado
local += "\\Logotipo_" + idEmpresa.ToString("N") + ".png";
// Salvando o Bitmap
bitmap.Save(local);
// Criando o Thumbnail informando parâmetros de altura, largura.
System.Drawing.Image avatar = bitmap.GetThumbnailImage(200, ((bitmap.Height * 200) / bitmap.Width), null, IntPtr.Zero);
// Salvando o Thumbnail
avatar.Save(local, ImageFormat.Png);
// Exibindo o Thumbnail adicionado
pictureBox1.ImageLocation = local;
}
catch
{
// Mensagem de erro, caso não seja possível incluir o logotipo
MessageBox.Show("Não foi possível a inclusão deste logotipo. Por favor tente novamente.", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
catch
{
// Mensagem de erro, caso não seja possível incluir o logotipo
MessageBox.Show("Não foi possível a inclusão deste logotipo. Por favor tente novamente.", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
Autor/Fonte: Fernanda Sallai (http://www.fernandasallai.com/)
Comente e interaja!