请问有人能告诉我如何将图像(.jpg, .gif, .bmp)转换成字节数组吗?
将图像转换为字节的最简单方法是使用System.Drawing命名空间下的ImageConverter类。
public static byte[] ImageToByte(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
System.Drawing.Image
,那么您可以按照以下方式操作: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();
}
}
byte[] imageBytes = convertImageToByteArray(pictureBox1.Image);
我假设您想要的是像素值。假设 bitmap
是一个 System.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);
获取任何文件的字节,请尝试:
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;