2016-07-19 2 views
-1

Я пытаюсь преобразовать столбец изображения в файл tif. Я понимаю код и то, как он работает, но содержимое столбца не имеет для меня никакого смысла.Преобразование столбца изображения Sql

Я надеюсь, что кто-то сможет узнать содержание и дать мне представление о том, как действовать.

Я вытаскиваю столбец изображения из своей базы данных и вставляю в массив байтов.

затем создал объект FileStream и написал TIF файлы (я постоянно получаю неверный параметр, когда я использовал метод потока памяти)

FileStream создал 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€[email protected]ž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 на 1/1/2016» с другими атрибутами, применяемых в качестве необходимого.

Благодаря

Edit:

Вот код, который производит строку

 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); 

      } 

     } 
+1

Возможно, есть код? – dman2306

+0

Я мог бы абсолютно, но в этом случае на самом деле это не код, на который он застрял, его вывод (я отредактировал свой вопрос, чтобы показать полную строку вывода, которая может помочь немного больше), которая, кажется, нуждается в еще одном процессе преобразования, чтобы быть полностью читаемым , Вот что я застрял. Какое преобразование необходимо, чтобы сделать эту выходную строку полностью читаемой. – Muckeypuck

+0

Я понятия не имею, что это за текст, не видя кода. В каком формате находится эта строка? Вы упоминаете столбец изображения. Это ничего не значит. Это просто сырые двоичные данные. Код, который его написал, является важным. Из того, что вы предоставили, я не могу помочь. – dman2306

ответ

0

Я был в состоянии избавиться от плохих символов и возвращать только строки, выполнив значение выше через этот код:

    for (int i = 0; i < text.Length; i++) 
        { 
         char c = text[i]; 
         byte b = (byte)c; 
         if (b < 32) 
          test += " "; 
         else 
          test += c; 
        }