首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL Server读取WMF映像

从SQL Server读取WMF映像
EN

Stack Overflow用户
提问于 2009-10-06 03:50:57
回答 1查看 1K关注 0票数 0

我正在使用SqlDataReader,并且正在尝试从从Access文件转换而来的表中读取数据,该表位于SQL Server2008中。

数据类型现在是varbinary(max)。

我如何转换它,这样我就可以拥有它作为System.Drawing.Image?

这是一个Windows,我想把它转换成MetaFile或者GIF并保存到文件系统中。

这似乎是不正确的,因为我得到一个错误,它不能转换为图像。

代码语言:javascript
复制
System.Drawing.Image LocationImage = sdr.GetSqlBinary(2)

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-06 03:59:21

使用SqlBytes。使用Image.FromStreamSqlBytes.Stream加载图像。使用阅读器上的CommandBehavior.SequentialAccess加载大尺寸图像:

代码语言:javascript
复制
using (SqlDataReader sdr=cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
...
System.Data.SqlTypes.SqlBytes imageBytes = srd.GetSqBytes(2);
System.Drawing.Image locationImage = Image.FromStream(imageBytes.Stream);
}

要将其另存为PNG/GIF:

代码语言:javascript
复制
SqlCommand cmd = new SqlCommand("update table set image=@image where ...")

MemoryStream streamOutput = new MemoryStream();
image.Save(streamOutput, ImageFormat.Png);
SqlBytes imageBytes = new SqlBytes(streamOutput); 
cmd.Parameters.AddWithValue("@image", imageBytes);
cmd.ExecuteNonQuery()

更新

我不确定Image.FromStream是否可以加载WMF格式。它可以加载EMF afaik,但我不确定WMF。也许通过Metafile(Stream)构造函数路由调用会起作用,但我绝对不是图形专家。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1523504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档