将图像转换为二进制?

我有一个图像(.png格式),我希望这张图片转换为二进制。

如何使用C#完成此操作?

由于你有一个文件使用: –

Response.ContentType = "image/png"; Response.WriteFile(physicalPathOfPngFile); 
 byte[] b = File.ReadAllBytes(file); 

File.ReadAllBytes方法

打开二进制文件,将文件内容读入字节数组,然后关闭文件。

试试这个:

 Byte[] result = (Byte[])new ImageConverter().ConvertTo(yourImage, typeof(Byte[])); 

你可以这样做:

  MemoryStream stream = new MemoryStream(); image.Save(stream, ImageFormat.Png); BinaryReader streamreader = new BinaryReader(stream); byte[] data = streamreader.ReadBytes(stream.Length); 

然后,数据将包含图像的内容。

首先,使用ImageConverter类将图像转换为字节数组。 然后指定你的png图像的mime类型 ,瞧!

这是一个例子:

 TypeConverter tc = TypeDescriptor.GetConverter(typeof(Byte[])); Response.ContentType = "image/png"; Response.BinaryWrite((Byte[])tc.ConvertTo(img,tc)); 
 public static byte[] ImageToBinary(string imagePath) { FileStream fS = new FileStream(imagePath, FileMode.Open, FileAccess.Read); byte[] b = new byte[fS.Length]; fS.Read(b, 0, (int)fS.Length); fS.Close(); return b; } 

只需使用上面的代码我认为你的问题将得到解决

 System.Drawing.Image image = System.Drawing.Image.FromFile("filename"); byte[] buffer; MemoryStream stream = new MemoryStream(); image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); buffer = stream.ToArray(); // converted to byte array stream = new MemoryStream(); stream.Read(buffer, 0, buffer.Length); stream.Seek(0, SeekOrigin.Begin); System.Drawing.Image img = System.Drawing.Image.FromStream(stream); 
 using System.IO; FileStream fs=new FileStream(Path, FileMode.Open, FileAccess.Read); //Path is image location Byte[] bindata= new byte[Convert.ToInt32(fs.Length)]; fs.Read(bindata, 0, Convert.ToInt32(fs.Length));