【问题标题】:Save image from base64 encoded string in SQL Server database as a png file将 SQL Server 数据库中 base64 编码字符串中的图像保存为 png 文件
【发布时间】:2017-08-03 18:37:46
【问题描述】:

我有一个表列,其中包含以0xFFD8FFE000.... 开头并以FFD9 结尾的字符串数据。每一行的开始和结束都相似,但不同。

如果我检查图像周围生成的 HTML,我会发现它显示为 PNG。我的最终目标是将字符串转换为文件的脚本导出。我正在寻找包括链接在内的信息,以便在路上送我。

【问题讨论】:

  • ff d8 是 jpeg 而不是 png btw。这里似乎没有问题,HTML 与什么有什么关系?
  • @AlexK。感谢您的评论。不存在以问号结尾的问题,但这是关于如何开始思考问题的请求。 HTML 检查是我了解图像作为信息存储的内容和方式的方法。在表格中变成图像。在生成的 HTML 集合中碰巧提到了 PNG。我的假设可能不正确,谦逊对我来说并不陌生......

标签: sql-server image image-processing base64 png


【解决方案1】:

您有几个选择。所有这些都包括一定数量的编码。 SQL Server 没有内置方式将 base64 编码的字符串导出为文件。

你可以……

编写一个从 TSQL / 数据库端执行此操作的 CLR。您在 CLR 中需要的相关 C# 代码如下所示:

File.WriteAllBytes(@"c:\yourfile", Convert.FromBase64String(yourBase64String));

这是此链接的礼貌:Base64 encoded string to file

或者编写一个快速控制台应用程序来运行您的每一行并将其拉出。对 C# 或谷歌上记录的任何其他数量的语言使用上面相同的代码 sn-p。另一种快速谷歌搜索发现的方法是:

public Image Base64ToImage(string base64String)
{
  // Convert Base64 String to byte[]
  byte[] imageBytes = Convert.FromBase64String(base64String);
  MemoryStream ms = new MemoryStream(imageBytes, 0, 
    imageBytes.Length);

  // Convert byte[] to Image
  ms.Write(imageBytes, 0, imageBytes.Length);
  Image image = Image.FromStream(ms, true);
  return image;
}

此处提供:http://www.dailycoding.com/Posts/convert_image_to_base64_string_and_base64_string_to_image.aspx

【讨论】:

  • 感谢您的信息。关于如何开始处理这个问题和重要的链接。我收集到没有用于导出到文件的库存方法。供应商(大型 HRIS)表示它可以接收它们,但它不能将它们发送出去。我不是程序员。用于分析和接口数据的 R 和 SQL 是我的股票,但可以将零碎的东西与足够的背景联系在一起。你把我送到了正确的方向。
猜你喜欢
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 2014-06-11
  • 1970-01-01
  • 2023-03-07
相关资源
最近更新 更多