【问题标题】:Convert thumbnails into blob for MS Access将缩略图转换为用于 MS Access 的 blob
【发布时间】:2012-04-09 14:06:41
【问题描述】:

我已将 .jpg 图像转换为位图缩略图。我现在要做的是将该缩略图转换为 MS Access 的 blob。我最近开始学习计算机编程,所以我的代码可能很草率,但是,我现在的代码是:

foreach (String files in Directory.GetFiles(dig.SelectedPath))
{
 if (files.EndsWith(".JPG"))
 {
    //convert .jpg to thumbnail
    Image image = new Bitmap(files);
    Image pThumbnail = image.GetThumbnailImage(100, 100, null, new IntPtr());

    //need code entered here to convert pThumbnail into a byte to be able to convert
    //the thumbnail into blob

    //To insert thumbnail into access if I can convert into blob
    string cmdstr = "INSERT into IMGSTR(Path, Images) values(?, ?)";
    OleDbCommand com = new OleDbCommand(cmdstr, vcon);
    com.Parameters.AddWithValue("?", files);
    com.Parameters.AddWithValue("?", pThumbnail);
    com.ExecuteNonQuery();

    image.Dispose();
  }
}

【问题讨论】:

  • 请不要在标题前加上“C# Visual Express”之类的前缀。这就是标签的用途。

标签: c# bitmap blob thumbnails


【解决方案1】:

尝试替换这个:

com.Parameters.AddWithValue("?", pThumbnail);

有了这个:

using (var ms = new MemoryStream())
{
    pThumbnail.Save(ms, pThumbnail.RawFormat);

    com.Parameters.AddWithValue("?", ms.ToArray())
}

【讨论】:

  • 当我用你的代码替换它时,我得到一个“值不能为空”。错误。我将继续使用您的代码,看看我能做什么。感谢您的回复
  • 你应该命名你的参数,你也可以试试 com.Parameters.Add("?").Value = ms.ToArray();
猜你喜欢
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
相关资源
最近更新 更多