2016-07-19 6 views
-1

Ich versuche, eine Bildspalte in eine TIF-Datei zu konvertieren. Ich verstehe den Code und wie es funktioniert, aber die Spalteninhalte ergeben für mich keinen Sinn.Sql Bildspalte Konvertierung

Ich hoffe, jemand kann den Inhalt erkennen und mir eine Idee, wie Sie vorgehen.

Ich ziehe die Bildspalte aus meiner Datenbank und stopfte in ein Byte-Array.

erstellt dann ein Filestream-Objekt und schrieb tif-Dateien (gehalten i ungültige Parameter immer, wenn ich den Speicherstrom Methode)

Die Filestream die tif-Dateien erstellt, aber sie kann nicht geöffnet werden (Meldung, dass die Datei war beschädigt.

Also aus einer Laune heraus, habe ich versucht, es in einen String zu konvertieren.

i vermuten, dass dies richtig ist, weil der Inhalt jetzt lesbar sind

"\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" 

So, jetzt sieht es aus wie ich eine Reihe von Meta-Daten: Name \ u0005 System.Drawing.FontStyle \ U0001 \ 0 \ 0 \ 0 \ a etc etc

Meine Frage ist, wie konvertiere ich was scheint Name Wert Paare in etwas lesbar zu sein?

ich eine Zeichenfolge wie

„Zufriedene auf 2016.01.01“ mit den anderen Attributen wie nötig angewandt erwarten.

Dank

Edit:

Hier ist der Code, der die Zeichenfolge

 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

Vielleicht zeigen einige Code? – dman2306

+0

Ich könnte absolut, aber in diesem Fall ist es nicht wirklich der Code im stecken auf, es ist die Ausgabe (ich bearbeitet meine Frage, um die vollständige Ausgabe-Zeichenfolge, die ein wenig mehr helfen kann), scheint ein weiterer Konvertierungsprozess benötigt, um vollständig lesbar zu sein . Das ist was ich bin fest. Welche Art von Konvertierung ist erforderlich, um diese Ausgabezeichenfolge vollständig lesbar zu machen. – Muckeypuck

+0

Ich habe keine Ahnung, was dieser Text ist, ohne Code zu sehen. In welchem ​​Format ist diese Zeichenfolge? Sie erwähnen eine Bildspalte. Das bedeutet nichts. Das sind nur rohe Binärdaten. Der Code, der es geschrieben hat, ist wichtig. Von dem, was du zur Verfügung gestellt hast, kann ich keine Hilfe anbieten. – dman2306

Antwort

0

ich oben, indem Sie den Wert konnte loszuwerden, die schlechten Zeichen und zurück nur einen String erzeugt durch diesen Code:

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