title: Why does loading a jpeg or jpg image changes it upon saving everytime?
body: <p>The pixel values of jpeg and jpg changes even when I simply load an image and just save it.<br>
  The values kept on changing on consecutive runs.<br>
  This is not the case when I do the same to a png image.<br>
  I have demonstrated it using opencv and imageio.</p>
  
  <pre class="lang-py prettyprint-override"><code>import cv2
  import imageio
  import numpy as np
  
  # Using opencv
  im = cv2.imread("img.jpeg")
  cv2.imwrite("img_save1.jpeg", im)
  
  im2 = cv2.imread("img_save1.jpeg")
  cv2.imwrite("img_save2.jpeg", im2)
  
  im3 = cv2.imread("img_save2.jpeg")
  print("Opencv ", np.sum(np.abs(im - im2)), np.sum(np.abs(im - im3)), np.sum(np.abs(im2 - im3)), sep=',  ')
  
  # Using imageio
  im = imageio.imread("img.jpeg")
  imageio.imwrite("img_save1.jpeg", im)
  
  im2 = imageio.imread("img_save1.jpeg")
  imageio.imwrite("img_save2.jpeg", im2)
  
  im3 = imageio.imread("img_save2.jpeg")
  print("Imageio ", np.sum(np.abs(im - im2)), np.sum(np.abs(im - im3)), np.sum(np.abs(im2 - im3)), sep=',  ')
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>Opencv ,  3960369,  4185747,  947042
  Imageio ,  10047893,  10064129,  280428
  </code></pre>
  
  <p>For png file</p>
  
  <pre class="lang-py prettyprint-override"><code># Using opencv
  im = cv2.imread("ig.png")
  cv2.imwrite("ig_save1.png", im)
  im2 = cv2.imread("ig_save1.png")
  print("Opencv: ", np.sum(np.abs(im - im2)))
  
  # Using imageio
  im = imageio.imread("ig.png")
  imageio.imwrite("ig_save1.png", im)
  im2 = imageio.imread("ig_save1.png")
  print("imageio: ", np.sum(np.abs(im - im2)))
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>Opencv:  0
  Imageio:  0
  </code></pre>