Ridimensionare immagini in C#

Ridimensionare immagini in C#

Per effettuare un ridimensionamento delle immagini in C#, non abbiamo bisogno di librerie esterne (anche se sono sicuro che ce ne stanno di ottime).

Ci basta usare il namespace System.Drawing.

Se siete dentro ad un progetto console, dovete aggiungere il reference.

Detto ciò, ecco un esempio:

using System.Drawing;
using System.Drawing.Drawing2D;

namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            string imageFile = "C:\img.jpg";
            string outputFile = "C:\img_scale.jpg";
            double scaleFactor = 0.5;
            resize(imageFile, outputFile, scaleFactor);
        }

        public static void resize(string imageFile, string outputFile, double scaleFactor)
        {
            using (var srcImage = Image.FromFile(imageFile))
            {
                var newWidth = (int)(srcImage.Width * scaleFactor);
                var newHeight = (int)(srcImage.Height * scaleFactor);
                using (var newImage = new Bitmap(newWidth, newHeight))
                using (var graphics = Graphics.FromImage(newImage))
                {
                    graphics.SmoothingMode = SmoothingMode.AntiAlias;
                    graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
                    graphics.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
                    newImage.Save(outputFile);
                }
            }
        }
    }
}

Diciamo che non c'è molto da commentare; io non ho esplorato a fondo tutte le API, perchè mi andava bene questo per il mio scopo.

Probabilmente si può fare di meglio; prendetelo come spunto.

Enjoy!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2546 articoli
310 commenti
19 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy