如何从VarBinary(Max)构建图像,更改其类型并存储到物理位置

本文关键字:类型 存储 位置 VarBinary Max 图像 构建 | 更新日期: 2023-09-27 18:30:23

任何人都可以告诉我如何在 C# 中从 (DB) VarBinary(Max) 数据类型列构建图像。此外,我确实想更改其类型并将其保存到硬盘驱动器上的物理路径中。

很多人都发布了类似问题的答案,但我找不到符合我上述标准的合适答案。

任何人的帮助都将不胜感激。

亲切问候

如何从VarBinary(Max)构建图像,更改其类型并存储到物理位置

首先将 byte[] 转换为位图:

    // Turn the binary into an image
    TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap));
    Bitmap myImage = (Bitmap)tc.ConvertFrom(imagedata );

然后保存到磁盘:

     myImage.save("file.png", ImageFormat.Png);

任何问题让我知道,这对我有用。

编辑:您需要使用System.ComponentModel;在顶部。

编辑 2:如果收到 GDI 错误,请将位图复制到新位图:

Bitmap bm = new Bitmap(myImage);
myImage.Dispose();
myImage = null;
bm.save("file.png", ImageFormat.Png);
以下是

我从 Byte[] 构造图像并将其数据类型更改为不同格式的答案。

            byte[] imagedata = dt.Rows[0]["Data"] as byte[];

        System.Drawing.Image newImage;
        if (imagedata != null)
        {
            using (MemoryStream stream = new MemoryStream(imagedata))
            {
                newImage = System.Drawing.Image.FromStream(stream);
                newImage.Save("C:''Users''User''Documents''TestPictureConversion''WebApplication2''WebApplication2''Images''Test Image.png");
            }
        }

由于我已经更改了应用程序中图像文件夹的路径,现在它不再产生"GDI+ 中发生一般错误"错误。若要避免出现"GDI+ 中发生一般错误",请更改文件夹的权限或选择在网络上具有读/写权限的位置。

亲切问候