如何从VarBinary(Max)构建图像,更改其类型并存储到物理位置
本文关键字:类型 存储 位置 VarBinary Max 图像 构建 | 更新日期: 2023-09-27 18:30:23
任何人都可以告诉我如何在 C# 中从 (DB) 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+ 中发生一般错误",请更改文件夹的权限或选择在网络上具有读/写权限的位置。
亲切问候