ReadPixels problem

I have a problem that is driving me crazy , I searched literature about it but it seems no one gives to the solution , some say even that may be a bug in this version of Unity . The problem is that when I try to take a screenshot I obtain always an offset image. I used this code:

public IEnumerator CaptureCamera()
isProcessing = true;
// wait for graphics to render
yield return new WaitForEndOfFrame();

    // create the texture
    Texture2D screenTexture = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, true);
    // put buffer into texture
    screenTexture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
    // apply

    dataToSave = screenTexture.EncodeToPNG();
    destination = Path.Combine(Application.persistentDataPath, System.DateTime.Now.ToString("yyyy-MM-dd-HHmmss") + ".png");
    File.WriteAllBytes(destination, dataToSave);
    isProcessing = false;

this the original img:

and this is the result:
My Unity version is 5.2.2f1 Personal
Please someone knows the solution to this problem?
Thanks in advance

Could I just check - are you running the code in ‘PostRender’. I could be wrong, but I believe that exactly where you call ReadPixels can matter (perhaps it shouldn’t, but it might well do), as it’s reading from a render target.

Try putting your code in ‘OnPostRender’ of your camera object.