Taking the Fourier transform is easy and fun!

Let's strip away some of the complexities in order to look at what is going on. First, remove the color form the image, since this just complicates things (you can always do it the same for each color channel).

    img = ColorConvert[Import["ExampleData/lena.tif"], "Grayscale"];

Here are the magnitude and phase of the Fourier transform:

    (abs = Abs[Fourier[ImageData[img]]]) // Image
    (arg = Arg[Fourier[ImageData[img]]]) // Image

[![enter image description here][1]][1]

[![enter image description here][2]][2]

To invert these, use:

    Chop[InverseFourier[(abs E^(I arg))]] // Image

[![enter image description here][3]][3]

which is the same as we started with. The `Chop` is needed because spurious (almost zero) complex numbers remain after the Inverse).

Notice how clear and concise this is... it's just taking `Fourier` of the image, taking the Abs and Arg to get the magnitude and phase images, and then reconstructing using `InverseFourier` on `Abs*Exp[I Arg]`. 

This is a bit simpler than usual. For one thing, the zero frequency is in the upper left hand corner (instead of the center, where one usually plots it). You can move this to the center using `RotateLeft` on the image, or by multiplying in the spatial domain by +/-1^(i,j) as in Nasser's answer. Of course, then, to reconstruct, you have to rotate back. This also uses the default `FourierParameters`, which may or may not be exactly what you want. 

  [1]: https://i.sstatic.net/OE7kR.png
  [2]: https://i.sstatic.net/Hf1Ku.png
  [3]: https://i.sstatic.net/7z7JT.png