从Microsoft SQL Server "Image"类型解码图片



我试图解码一个存储在类型" image"列中的图像Mirosoft SQL Server。

我通过PyodBC从Python代码访问此列,并带有" SQL Server的ODBC驱动程序13"驱动程序,而我得到的是:

http://textuploader.com/d03ml

根据此链接,https://learn.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-text-and-image-mimage-transact-sql在内部存储为Unicode ucs-ucs-ucs-ucs-ucs-ucs-ucs-u ucs-ucs--2格式。

我尝试解码列以" UTF-16"存储在列中的巨大字符串,因为在许多地方,据说它等于UCS-2(是吗?(。但是输出字符串永远不会被识别为图像(使用图像类或任何在线图像转换器。(

有人有什么想法吗?

我自己发现了它。也许这对别人很有用。

将图片保存在SQL Server中的列是使用C#Deflate算法压缩的字符串。

在python中,我使用zlib.decompress(image_string [4:],-15(。

-15表示要解压缩的字符串没有标头。我这样做是为了防止标题检查。

[4:]表示字符串从位置4向前开始(跳过标题,位于前4个位置(。

然后我得到了可以轻松读取为图像的原始字符串。

最新更新