将位图转换为字节

use*_*013 0 c# winforms

我正在使用winform(C#).我有图像作为位图,我想将位图转换为字节插入数据库.那么,请你告诉我怎么做?

Adi*_*dil 6

您可以使用ImageConverter获取字节数组形式的imaage

public static byte[] GetBytesOfImage(Image img)
{
    ImageConverter converter = new ImageConverter();
    return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用BitmapImage进行转换.

使用这两种方法将位图转换为字节数组,将字节数组转换为位图.

public Byte[] BufferFromImage(BitmapImage imageSource)
{
    Stream stream = imageSource.StreamSource;
    Byte[] buffer = null;
    if (stream != null && stream.Length > 0)
    {
        using (BinaryReader br = new BinaryReader(stream))
        {
            buffer = br.ReadBytes((Int32)stream.Length);
        }
    }

    return buffer;
}
public BitmapImage ImageFromBuffer(Byte[] bytes)
{
    MemoryStream stream = new MemoryStream(bytes);
    BitmapImage image = new BitmapImage();
    image.BeginInit();
    image.StreamSource = stream;
    image.EndInit();
    return image;
}
Run Code Online (Sandbox Code Playgroud)