forum-informatico
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Ajude a Asast
Patrocinadores
Últimos assuntos
» Artigo ethereum
Método para reduzir uma imagem EmptyTer Set 24, 2019 1:16 pm por jpmartins

» Artigo Bitcoin
Método para reduzir uma imagem EmptyTer Set 24, 2019 1:13 pm por jpmartins

» Novo site para desportistas / New site for athletes
Método para reduzir uma imagem EmptyTer Dez 04, 2018 8:19 am por Admin

» Check used port with the command line
Método para reduzir uma imagem EmptyTer Dez 04, 2018 8:10 am por Admin

» Check the port where mariaDB is running
Método para reduzir uma imagem EmptySeg Dez 03, 2018 4:59 am por Admin

» Check the linux version
Método para reduzir uma imagem EmptySeg Dez 03, 2018 3:12 am por Admin

» Granting rights to a database for a user
Método para reduzir uma imagem EmptyQui Nov 29, 2018 2:04 am por Admin

» Create new user
Método para reduzir uma imagem EmptyQui Nov 29, 2018 2:01 am por Admin

» Change level of password security level
Método para reduzir uma imagem EmptyQui Nov 29, 2018 1:59 am por Admin

AdSense
Contributo

Método para reduzir uma imagem

Ir para baixo

Método para reduzir uma imagem Empty Método para reduzir uma imagem

Mensagem  Admin Qua Dez 14, 2011 8:16 am

O método seguinte pode ser usado para reduzir uma imagem, recebendo o nome do ficheiro da imagem e a largura (em mm) com que queremos que fique.
Se a imagem for do tipo JPG, ela é substituída. Senão, uma nova imagem com o novo tamanho é criada.

Aqui fica:

Código:

        ...
        private double MilimeterPerInch = 25.4F;
        ...
        /// <summary>
        /// Method used to rezsize a given image
        /// </summary>
        /// <param name="file">The file name</param>
        /// <param name="width">The new image width in milimeters</param>
        /// <param name="height">The new image heigth in milimeters</param>
        /// <returns></returns>
        private string ResizeImage(string file, int widthMM)
        {
            string result = null;
            try
            {
                if (String.IsNullOrEmpty(file))
                {
                    Debug.WriteLine("File name not defined.");
                    return result;
                }

                if (widthMM <= 0)
                {
                    Debug.WriteLine("New width not defined.");
                    return result;
                }

                System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(file);
                System.Drawing.Image NewImage = null;
                if (widthMM >= PixelsToMM(FullsizeImage.Width))
                {
                    if (!(file.ToLower().EndsWith("jpg") || file.ToLower().EndsWith("jpeg")))
                    {
                        NewImage = FullsizeImage.GetThumbnailImage(FullsizeImage.Width, FullsizeImage.Height, null, IntPtr.Zero);
                        result = file.Substring(0, file.Length - 3);
                        result += "jpg";
                    }
                }
                else
                {
                    Graphics g = this.CreateGraphics();
                    int width = (int)(g.DpiX / MilimeterPerInch) * widthMM;
                    int heigth = (int)(width * FullsizeImage.Height / FullsizeImage.Width);

                    NewImage = FullsizeImage.GetThumbnailImage(width, heigth, null, IntPtr.Zero);

                    if (!(file.ToLower().EndsWith("jpg") || file.ToLower().EndsWith("jpeg")))
                    {
                        result = file.Substring(0, file.Length - 3);
                        result += "jpg";
                    }
                    else
                    {
                        result = file;
                    }
                }

                // Clear handle to original file so that we can overwrite
                FullsizeImage.Dispose();

                if(result!=null)
                    NewImage.Save(result);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return null;
            }
            return result;
        }

    /// <summary>
        /// Method used to convert pixels to Milimeters
        /// </summary>
        /// <param name="pixels">The number of pixels</param>
        /// <returns>double</returns>
        public double PixelsToMM(int pixels)
        {
            Graphics g = this.CreateGraphics();
            return (double) pixels / g.DpiX * MilimeterPerInch;
        }
        ...
Admin
Admin
Admin

Mensagens : 607
Data de inscrição : 21/01/2008
Idade : 46

https://forum-informatico.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos