btw I also got many "base class has a non-virtual destructor" for the following classes. But not with classes where one would use a pointer to the base, so I'm not sure you want to made them all virtual.. but for info :
also the different Pixel* constructors have undefined variables with the default constructors, but as they are commented "Creates a Pixel* without defining its colour", I'm not sure you want to changed that too.
I got many warnings, it's quite a lot of work to read them all and see if there are really critical ones in there.
None of those classes should have virtual destructors - and any compiler that warns about them is just plain wrong! Only classes that have a virtual method should generate a warning like that.