如何使用.NET 2.0转换BITMAP在字节数组格式为JPEG格式?

有帮助吗?

解决方案

你的意思是什么类型的byte[]的?原始文件流数据?在这种情况下,如何像(使用System.Drawing.dll在客户端应用程序):

    using(Image img = Image.FromFile("foo.bmp"))
    {
        img.Save("foo.jpg", ImageFormat.Jpeg);
    }

或者使用FromStreamnew MemoryStream(arr)如果你真的有一个byte[]

    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;这提供了读取和使用指针存储器中写入图像的像素的访问。

public static Bitmap BytesToBitmap(byte[] byteArray)
{
  using (MemoryStream ms = new MemoryStream(byteArray))
  {
    Bitmap img = (Bitmap)Image.FromStream(ms);
    return img;
  }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top