Páginas

28 de fevereiro de 2019

Obtendo as Propriedades de uma Figura em C#

Existem situações no projeto em que precisamos saber as propriedades de uma figura, como tamanho em Bytes, largura e altura em pixels ou a resolução, para determinarmos se a figura é adequada para a aplicação, ou se possui as propriedades corretas como tamanho, para fazer um download em um website.
Para obter as propriedades da figura podemos utilizar a classe abstrata Image. No código da Listagem 1 obtemos o tamanho em Bytes, a largura x altura em pixels e a resolução horizontal x resolução vertical em dpi.
Listagem 1
    class Program
    {
        static void Main(string[] args)
        {
            // Lê o arquivo da figura
            FileStream stream = new FileStream("imagem1.jpg", FileMode.Open);
            int imageSize = 0;
            int imageWidth = 0;
            int imageHeight = 0;
            float imageHorizontalDpi = 0.0f;
            float imageVerticalDpi = 0.0f;
 
            // Obtêm as propriedades da figura
            using (Image image = Image.FromStream(stream, false, false))
            {
                imageSize = Convert.ToInt32(stream.Length);
                imageWidth = image.Width;
                imageHeight = image.Height;
                imageHorizontalDpi = image.HorizontalResolution;
                imageVerticalDpi = image.VerticalResolution;                
            }
 
            Console.WriteLine("Tamanho da Figura em Bytes: " + 
                imageSize);
            Console.WriteLine("Largura x Altura da Figura: " + 
                imageWidth.ToString() + " x " + imageHeight + " pixels");
            Console.WriteLine("Resolução da Figura: " + imageHorizontalDpi + " x " +
                imageVerticalDpi + " dpi");
 
            Console.ReadLine();
        }
    }

Para a figura utilizada no código da Listagem 1 obtemos o seguinte resultado:
Tamanho da Figura em Bytes: 83794
Largura x Altura da Figura: 800 x 600 pixels
Resolução da Figura: 96 x 96 dpi