After setting the image as texture, take a block that you don't need, flatten it as much as possible, and stretch it to the grid or to the size that suits you best. Make sure that the image has equal sides. Save the file as start file for this project so you can make seperate objects that you can join later. When the project is done, delete the background block.
If the end result, the model being made,
needs to match the reference image exactly, don't do this because its producing an arbitrary relationship between reference image and reference surface. All that's needed is a plain (or other flat surface per orientations needed) that's the exact same dimensions as the image - this avoids X or Y axis distortion by trying to fit the image to a incorrectly sized surface.
In "
View" Properties, "
N" (or "
Object" Properties), change the "
Dimensions" values of the object to reflect the reference image - as per the above for a 1024x768 pixel image this can be 1024x768, 102.4x76.8, 10.24x7.68 or 1.024x0.768 (the ratio is important in relation to the surface size, so long as a derivative of the original measurement is used a 1:1 match is acquired). Use "
Apply", "
Ctrl+A", to reset the mesh once done. Then remap the UV to an image that matches the reference (if a single image is being used for multiple orientations, make each plain/surface the same size and then shift the UV map relative to the image rather than cutting or manipulating the mesh object, this avoids distortions).
If the original image is an arbitrary size, alter its background size in an image editor so it fits within the realms of the "
power-of-two rule" - alter the image back ground, not the image itself, this avoids distorting the object information that's to be used as a reference.