Creation of images, no read.

We open and read basic gridding information from file. We allocate images, but do not read their content yet.
Thinking about image reading, is it good

1) I think I have too many boundary crossings here - create image, get image size, soon get image data pointer, read image data...
2) Code seems to be polymorphic, but do we need such polymorphism here?

I'd like to think more about design.
Removed polymorphism

I will make everything work with floats, then go to other cases.