I want to get the byte[] from an image file.
Code:
               byte[] fromFile;
               using (FileStream fs = new FileStream("myImage.jpg", System.IO.FileMode.Open, System.IO.FileAccess.Read)) {
                  fromFile= new byte[fs.Length];
                  fs.Read(fromFile, 0, Convert.ToInt32(fs.Length));
               }
               // fromFile has a length of 5308

               using (MemoryStream ms = new MemoryStream()) {
                  ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
                  ImageCodecInfo _codecInfo = null;
                  foreach (ImageCodecInfo codec in codecs) {
                     if (codec.MimeType == "image/jpeg")
                        _codecInfo = codec;
                  }

                  byte[] fromImage;
                  using (Image img = Image.FromFile("myImage.jpg")) {
                      img.Save(ms, ImageFormat.Jpeg);
                      fromImage = ms.ToArray();
                  }
               }
               //fromImage has a length of  5835
why does the 2 byte arrays have a different length? it is the same file.

I also tried
Code:
               using (MemoryStream ms = new MemoryStream()) {
                  ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
                  ImageCodecInfo _codecInfo = null;
                  foreach (ImageCodecInfo codec in codecs) {
                     if (codec.MimeType == "image/jpeg")
                        _codecInfo = codec;
                  }

                  using (EncoderParameters _encoderParameters = new EncoderParameters()) {
                     _encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.RenderMethod, (long)100);

                     img.Save(ms, _codecInfo, _encoderParameters);
                     fromImage = ms.ToArray();
                  }
and some other encoderParameters, but they all give a different length