Blog TreinaWeb
Webstandards e Programação Web e Desktop

Hoje mostraremos um exemplo simples e muito útil para criar miniaturas de imagens, conhecidas também como Thumbnails.

A função abaixo é responsável por todo este processo de miniaturização das imagens, ela recebe como parâmetro, o caminho da imagem, a largura e o tamanho.

        public void thumbnail(String img, int width, int height)
        {
            // O caminho da imagem virá da variavel img
            // As medidas p/ miniatura virão da variavel width e height
 
            // cria o object imagem com o nome e camimho completo do arquivo
            System.Drawing.Image image = System.Drawing.Image.FromFile(img);
 
            // cria o thumbnail do object image, definindo sua altura e largura de acordo com os parâmetros
            System.Drawing.Image thumbnailImage = image.GetThumbnailImage(width, height, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
 
            // cria a memory stream dos bytes da imagem
            MemoryStream imageStream = new MemoryStream();
 
            // coloca a imagem na memory stream
            thumbnailImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
 
            // cria um array de bytes com o tamanho da imagem
            byte[] imageContent = new Byte[imageStream.Length];
 
            // rebobina a memory stream
            imageStream.Position = 0;
 
            // carrega o array de bytes com a imagem
            imageStream.Read(imageContent, 0, (int)imageStream.Length);
 
            // modifica o cabeçalho "content-type" da página para "image/jpeg" e imprime a imagem.
            Response.ContentType = "image/jpeg";
            Response.BinaryWrite(imageContent);
 
        }
        //função complementar
        public bool ThumbnailCallback()
        {
            return true;
        }

Note que você pode definir a largura e a altura da imagem, então também é possível ampliar as imagens, mas lembre-se que nestes casos a imagem pode perder qualidade.

Por hoje é isso, até a próxima.



Uma resposta para “Criando miniaturas em C#”

  1. Felipe disse:

    Ótima dica. Muito útil no dia-a-dia do desenvolvedor C#.

Comente

SEO Powered by Platinum SEO from Techblissonline