我正在尝试将图片列转换为tif文件。我理解代码及其工作原理但是列内容对我来说没有多大意义。
我希望有人可以认出这些内容,并让我知道如何继续。
我从我的数据库中提取图像列并填入字节数组。
然后创建了一个文件流对象并写出了tif文件(当我使用内存流方法时,我一直收到无效参数)
文件流创建了tif文件但无法打开(消息说文件已损坏。
所以,一时兴起,我尝试将其转换为字符串。
我怀疑这是正确的,因为内容现在是可读的
"\0\u0001\0\0\0ÿÿÿÿ\u0001\0\0\0\0\0\0\0\f\u0002\0\0\0ISystem, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\u0005\u0001\0\0\0-System.Collections.Specialized.ListDictionary\u0004\0\0\0\u0004head\aversion\u0005count\bcomparer\u0004\0\0\u0003<System.Collections.Specialized.ListDictionary+DictionaryNode\u0002\0\0\0\b\b\u001cSystem.Collections.IComparer\u0002\0\0\0\t\u0003\0\0\0\b\0\0\0\b\0\0\0\n\u0005\u0003\0\0\0<System.Collections.Specialized.ListDictionary+DictionaryNode\u0003\0\0\0\u0003key\u0005value\u0004next\u0002\u0002\u0004<System.Collections.Specialized.ListDictionary+DictionaryNode\u0002\0\0\0\u0002\0\0\0\u0006\u0004\0\0\0\u00040001\u0006\u0005\0\0\0\u0004Text\t\u0006\0\0\0\f\a\0\0\0QSystem.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\u0001\u0006\0\0\0\u0003\0\0\0\u0006\b\0\0\0\n0001Center\t\t\0\0\0\t\n\0\0\0\u0005\t\0\0\0\u0015System.Drawing.PointF\u0002\0\0\0\u0001x\u0001y\0\0\v\v\a\0\0\0u\u001eÔ¿éÉÑÀ\u0001\n\0\0\0\u0003\0\0\0\u0006\v\0\0\0\r0001Expansion\t\f\0\0\0\t\r\0\0\0\u0005\f\0\0\0\u0014System.Drawing.SizeF\u0002\0\0\0\u0005width\u0006height\0\0\v\v\a\0\0\0e€Y@TžK?\u0001\r\0\0\0\u0003\0\0\0\u0006\u000e\0\0\0\t0001Color\t\u000f\0\0\0\t\u0010\0\0\0\u0005\u000f\0\0\0\u0014System.Drawing.Color\u0004\0\0\0\u0004name\u0005value\nknownColor\u0005state\u0001\0\0\0\t\a\a\a\0\0\0\n \0\0ÿ\0\0\0\0\0\0\u0002\0\u0001\u0010\0\0\0\u0003\0\0\0\u0006\u0011\0\0\0\b0001Text\u0006\u0012\0\0\0\u001bPARTIAL RELEASE IN 09/2573\t\u0013\0\0\0\u0001\u0013\0\0\0\u0003\0\0\0\u0006\u0014\0\0\0\b0001Font\t\u0015\0\0\0\t\u0016\0\0\0\u0005\u0015\0\0\0\u0013System.Drawing.Font\u0004\0\0\0\u0004Name\u0004Size\u0005Style\u0004Unit\u0001\0\u0004\u0004\v\u0018System.Drawing.FontStyle\a\0\0\0\u001bSystem.Drawing.GraphicsUnit\a\0\0\0\a\0\0\0\u0006\u0017\0\0\0\u0014Microsoft Sans Serif\0\0\u001cA\u0005èÿÿÿ\u0018System.Drawing.FontStyle\u0001\0\0\0\avalue__\0\b\a\0\0\0\u0001\0\0\0\u0005çÿÿÿ\u001bSystem.Drawing.GraphicsUnit\u0001\0\0\0\avalue__\0\b\a\0\0\0\u0003\0\0\0\u0001\u0016\0\0\0\u0003\0\0\0\u0006\u001a\0\0\0\v0001Charset\b\b\u0001\0\0\0\t\u001b\0\0\0\u0001\u001b\0\0\0\u0003\0\0\0\u0006\u001c\0\0\0\u00130001TextOrientation\b\b\0\0\0\0\n\v"
所以现在看起来我有一串元数据: 名称\ u0005 System.Drawing.FontStyle \ U0001 \ 0 \ 0 \ 0 \一 等等
我的问题是如何将看似名称值对的东西转换成可读的东西?
我期待一个字符串,如
“Satisified on 1/1/2016”,其他属性作为必要条件应用。
由于
编辑:
以下是生成字符串
的代码 foreach (var item in guids)
{
string docGUID = item.DocGuid;
string path = "C:\\TestAnnotations\\" + docGUID;
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
var rows = results.AsEnumerable().Where(rw => (string)rw["DocGUID"] == docGUID);
Bitmap img = new Bitmap(800, 800);
int lastImagePos = 1;
foreach (var annotation in rows)
{
string fileName = path + "\\" + docGUID + lastImagePos.ToString() + ".tif";
byte[] buffer = (byte[])annotation["Annotations"];
var str = System.Text.Encoding.Default.GetString(buffer);
}
}
答案 0 :(得分:0)
我能够通过以下代码运行上面的值来摆脱坏字符并返回一个字符串:
for (int i = 0; i < text.Length; i++)
{
char c = text[i];
byte b = (byte)c;
if (b < 32)
test += " ";
else
test += c;
}