I thought in memory as .NET object. The first is read as raw bytes from file, the second is an instance of Image object asked for its bytes representation. There can be some metadata in the second case, or some transformation could come into play while the image was instantinated. Try to save the image to file and read raw data from the file again, or compare the files.