C#:如何将位图字节数组转换为JPEG格式?
如何使用.net 2.0将字节数组格式的位图转换为JPEG格式?您指的是什么类型的C#:如何将位图字节数组转换为JPEG格式?,c#,.net,jpeg,bmp,C#,.net,Jpeg,Bmp,如何使用.net 2.0将字节数组格式的位图转换为JPEG格式?您指的是什么类型的字节[]?原始文件流数据?在这种情况下,类似(在客户端应用程序中使用System.Drawing.dll)的方法如何: 或者使用FromStream和新内存流(arr)如果您确实有字节[]: byte[] raw = ...todo // File.ReadAllBytes("foo.bmp"); using(Image img = Image.FromStream(new MemoryStream
字节[]
?原始文件流数据?在这种情况下,类似(在客户端应用程序中使用System.Drawing.dll
)的方法如何:
或者使用FromStream
和新内存流(arr)
如果您确实有字节[]
:
byte[] raw = ...todo // File.ReadAllBytes("foo.bmp");
using(Image img = Image.FromStream(new MemoryStream(raw)))
{
img.Save("foo.jpg", ImageFormat.Jpeg);
}
如果它只是原始像素数据的缓冲区,而不是完整的图像文件(包括标题等,如JPEG),则不能使用image.FromStream
我认为您可能正在查找System.Drawing.Bitmap.LockBits,返回System.Drawing.Imaging.ImageData;这提供了使用指向内存的指针读取和写入图像像素的权限。第二个正是我要搜索的。然而,我正在写另一个MemoryStream而不是文件。谢谢这是一个位图。他想要一个jpeg。正确,代码不完整。但它会返回一个位图,稍后您可以将其以任何格式保存到文件中。。。。我想这是我对声誉战争的欢迎。。。反正是我的错。@juanjo.arana但你没有回答他的问题,只是告诉他如何获得位图。
public static Bitmap BytesToBitmap(byte[] byteArray)
{
using (MemoryStream ms = new MemoryStream(byteArray))
{
Bitmap img = (Bitmap)Image.FromStream(ms);
return img;
}
}
public static Bitmap BytesToBitmap(byte[] byteArray)
{
using (MemoryStream ms = new MemoryStream(byteArray))
{
Bitmap img = (Bitmap)Image.FromStream(ms);
return img;
}
}