将图像转换为二进制?
我有一个图像(.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));