title: PixelFormat.Format32bppArgb seems to have wrong byte order
body: <p>I try to get all byte values from a Bitmap(System.Drawing.Bitmap). Therefore I lock the bytes and copy them:</p>
  
  <pre><code>public static byte[] GetPixels(Bitmap bitmap){
      if(bitmap-PixelFormat.Equals(PixelFormat.Format32.bppArgb)){
          var argbData = new byte[bitmap.Width*bitmap.Height*4];
          var bd = bitmap.LockBits(new Rectangle(0, 0, image.Width, image.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat);
          System.Runtime.InteropServices.Marshal.Copy(bd.Scan0, argbData, 0, bitmap.Width * bitmap.Height * 4);
          bitmap.UnlockBits(bd);
      }
  }
  </code></pre>
  
  <p>I tested this Image with a very simple 2x2 PNG image with pixels (red, green, blue, white) that I created in Photoshop. Because of the format, I expected the following values within the argbData:</p>
  
  <pre><code>255 255   0   0    255 0   255   0 
  255 0     0 255    255 255 255 255 
  </code></pre>
  
  <p>But I got:</p>
  
  <pre><code>0     0 255 255     0 255   0 255
  255   0   0 255   255 255 255 255
  </code></pre>
  
  <p>But this is a BGRA format. Does anybody know why the bytes seems swapped? 
  By the way, when I use the image directly for a Image.Source as shown below, the Image is shown correctly. So what's my fault?</p>
  
  <pre><code>&lt;Image Source="D:/tmp/test2.png"/&gt;
  </code></pre>