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.
Ótima dica. Muito útil no dia-a-dia do desenvolvedor C#.