将图像转换为字节数组

任何人都可以告诉我如何将图像(.jpg,.gif,.bmp)转换为字节数组?

我假设你想要的是像素值。 假设bitmapSystem.Windows.Media.Imaging.BitmapSource

 int stride = bitmap.PixelWidth * ((bitmap.Format.BitsPerPixel + 7) / 8); byte[] bmpPixels = new byte[bitmap.PixelHeight * stride]; bitmap.CopyPixels(bmpPixels, stride, 0); 

注意,’stride’是每行像素ddata所需的字节数。 这里有更多解释。

将图像转换为字节的最简单方法是使用System.Drawing命名空间下的ImageConverter类

 public static byte[] ImageToByte(Image img) { ImageConverter converter = new ImageConverter(); return (byte[])converter.ConvertTo(img, typeof(byte[])); } 

如果您的图像已经是System.Drawing.Image的forms,那么您可以这样做:

 public byte[] convertImageToByteArray(System.Drawing.Image image) { using (MemoryStream ms = new MemoryStream()) { image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); // or whatever output format you like return ms.ToArray(); } } 

您可以将此function与图片框控件中的图像一起使用,如下所示:

 byte[] imageBytes = convertImageToByteArray(pictureBox1.Image); 

从任何文件中获取字节尝试:

 byte[] bytes = File.ReadAllBytes(pathToFile); 

以MusiGenesis为基础; 帮了我很多,但我有很多图像类型。 这将保存它可以读取的任何图像类型。

  System.Drawing.Imaging.ImageFormat ImageFormat = imageToConvert.RawFormat; byte[] Ret; try { using (MemoryStream ms = new MemoryStream()) { imageToConvert.Save(ms, ImageFormat); Ret = ms.ToArray(); } } catch (Exception) { throw; } return Ret; 

您可以使用File.ReadAllBytes方法来获取字节

如果您使用的是FileUpload类,则可以使用FileBytes属性将字节数作为字节数组。