16

I'm trying to write a program that sorts images in specific folder by ther dimensions and moves little images to another folder via simple .NET console application. I decided to use System.Drawing.Image class to get the image dimentions from an image file. But I face following error:

The type or namespace name 'Image' could not be found (are you missing a using directive or an assembly referrence?)

What exactly did I do wrong and why it doesn't see this class? Here are the complete code of my program:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Drawing;

namespace ImageSort
{
    class Program
    {
        static void Main(string[] args)
        {
            string targetPath = @"d:\SmallImages";
            string[] files = Directory.GetFiles(@"d:\Images");
            foreach (string path in files)
            {
                if (File.Exists(path))
                {
                    Image newImage = Image.FromFile(path);
                    var Width = (int)(newImage.Width);
                    var Height = (int)(newImage.Height);
                    if (Width * Height < 660000) {
                        System.IO.File.Move(path, targetPath);
                    }
                }
            }
        }
    }
}
BohdanZPM
  • 695
  • 2
  • 10
  • 22

2 Answers2

18

You need to add a reference : System.Drawing.dll.

In Solution Explorer, right-click on the References node and choose Add Reference and find System.Drawing.dll.

Abdellah OUMGHAR
  • 3,627
  • 1
  • 11
  • 16
14

The answer to this issue for .NET Core 3.1 is to simply install System.Drawing.Common from NuGet.

feganmeister
  • 686
  • 1
  • 8
  • 15