我有包含图像的数据集。
我需要将这张图片保存到文件中。
我试试这个:
SQL = ItemCode,PIC from ROW;
dsView = new DataSet();
adp = new SqlCeDataAdapter(SQL, Conn);
adp.Fill(dsView, "ROW");
adp.Dispose();
foreach (DataRow R in dsROW.Tables[0].Rows)
{
ItemCode = R["ItemCode"].ToString().Trim() ;
TEMP = R["PIC"].ToString().Trim();
Image image = R["PIC"] as Image;
if(image != null)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] imagedata = ms.ToArray();
}
但图像总是null
在 TEMP 中我看到 System.Byte[]
需要一些帮助,谢谢
最佳答案
您的 R["PIC"]
是数组或字节。
首先,您尝试将 ToString()
应用于它,您只需得到 System.Byte[]
。
然后,您尝试将其转换为 Image
。 Byte[]
应该如何转换 到Image
?
您需要从您的Byte
数组创建一个Image
:
dsView = new DataSet();
adp = new SqlCeDataAdapter(SQL, Conn);
adp.Fill(dsView, "ROW");
adp.Dispose();
foreach (DataRow R in dsROW.Tables[0].Rows)
{
ItemCode = R["ItemCode"].ToString().Trim();
using (var ms = new MemoryStream(R["PIC"]))
{
Image image = Image.FromStream(ms);
image.Save($"C:\\Output\\YourCustomPath\\{ItemCode}.jpeg", ImageFormat.Jpeg);
}
}
关于c# - 如何从数据集中获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33628958/