2009-08-09 7 views
2

Deep Zoom Composer selbst ist sehr schön Werkzeug. Ich frage mich, ob es irgendwelche automatischen Möglichkeiten zum Komponieren gibt? Zum Beispiel habe ich 100 Bilder, und ich möchte automatisch als 10 * 10 tiefe Zoom-Effekt komponieren. Ich implementiere einen Hintergrund-Workflow und komponiere automatisch tiefes Zoomen und Veröffentlichen. Der bevorzugte Ausgabetyp ist "Bilder" und "Als Sammlung exportieren (mehrere Bilder)".Silverlight Deep Zoom Komponieren Ausgabe

Alle Referenzmuster oder Dokumente? Ich verwende VSTS2008 + C# + .Net 3.5.

Antwort

4

Werfen Sie einen Blick auf this post über DeepZoomTools.dll in der App enthalten.

+0

Dank Link ist sehr informativ über das Objekt Modell, aber als Anfänger gibt es irgendwelche ausführbaren Proben? – George2

2

Es gibt ein großartiges Beispielprojekt here und wenn Sie wirklich verrückt werden und Bilder/Kacheln programmatisch erzeugen möchten, können Sie versuchen, die Art von Ding zu referenzieren, das in this MSDN article referenziert wird.

Ich habe nicht viel echte Dokumentation über DeepZoomTools.dll mich, aber ich erstellt einen kleinen Test webservice drehen ein einzelnes uploaded Bild in eine Deep Zoom Quelle gefunden. Der entsprechende Code ist:

public string CreateDeepZoomImage(byte[] abyte, string fileName) 
     { 
      ImageCreator ic = new ImageCreator(); 
      string FilePath = Path.Combine(_uploadPath, fileName); 
      System.IO.FileStream fs = new System.IO.FileStream(FilePath, System.IO.FileMode.Create); 
      fs.Write(abyte, 0, abyte.Length); 
      fs.Close(); 
      FileInfo imageFileInfo = new FileInfo(FilePath); 
      string destination = imageFileInfo.DirectoryName + "\\" + imageFileInfo.Name.TrimEnd(imageFileInfo.Extension.ToCharArray()) + "\\output.xml"; 
      ic.Create(FilePath, destination); 
      string returnpath = "/Uploads/" + imageFileInfo.Name.TrimEnd(imageFileInfo.Extension.ToCharArray()) + "/output.xml"; 
      return returnpath; 
     } 

Wo der Rückweg wie so verwendet wird:

ZoomImage.Source = new DeepZoomImageTileSource(new Uri(e.Result, UriKind.Relative)); 

(den schlampigen Code Vergib es aber nicht funktioniert..)