This question already has answers here:
How to convert image to byte array

(12 个回答)


6年前关闭。




我在图像中寻找快速方法 Picturebox 转换为字节数组。

我看到了这段代码,但我不需要它。因为图片的图片框是从数据库读取的数据。
所以我不知道 ImageFormat
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    return ms.ToArray();
}

所以请让我知道是否有人知道快速方法

谢谢!玩的很开心!

最佳答案

这可能不是您正在寻找的,但如果您正在寻找执行某些像素操作的性能,它可能对您有用..我认为这里值得一提。

由于您已经使用 Image imageIn 加载了图像,因此您实际上可以直接访问图像缓冲区而无需进行任何复制,从而节省时间和资源:

public void DoStuffWithImage(System.Drawing.Image imageIn)
{
    // Lock the bitmap's bits.
    Rectangle rect = new Rectangle(0, 0, imageIn.Width, imageIn.Height);
    System.Drawing.Imaging.BitmapData bmpData =
                    imageIn.LockBits(rect, System.Drawing.Imaging.ImageLockMode.Read,
                    imageIn.PixelFormat);

    // Access your data from here this scan0,
    // and do any pixel operation with this imagePtr.
    IntPtr imagePtr = bmpData.Scan0;

    // When you're done with it, unlock the bits.
    imageIn.UnlockBits(bmpData);
}

有关更多信息,请查看此 MSDN 页面

ps:这个 bmpData.Scan0 当然只会让你访问像素有效负载。又名,没有标题!

关于c# 如何将pictureBox.Image 转换为字节数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28426710/

10-16 13:50