/ / Wie bekomme ich ein Bild von Silverlight in Nicht-Silverlight? - .net, silverlight, wcf, service, kommunikation

Wie man ein Bild von Silverlight zu Nicht-Silverlight bekommt? - .net, silverlight, wcf, service, kommunikation

Ich brauche eine sehr seltsame Sache, die ich zugeben muss. Ich hoffe, du wirst mir helfen können.

Meine aktuelle Situation (alles in einer Lösung VS2010):

  • Ich habe die Silverlight-Baugruppe mit Benutzer-Kontrolle (im Grunde eine Zeichnung von nett)
  • Ich habe einen WCF-Service zu Stellen Sie die Bilder zur Verfügung (gehostet in der Website-Projekt)

Ich muss irgendwie:

  • wenn jemand den REST-Dienst (oben) für das Bild einer bestimmten Größe anfordert
  • Erstellen, Einrichten und Rendern dieses Steuerelements für ein Bild (ich habe es mit WriteableBitmap gemacht)
  • gib das Bild irgendwie zum Dienst zurück <- DAS IST MEIN PROBLEM
  • stelle dieses Bild als Antwort zur Verfügung (ich weiß, wie das geht)

Ich habe versucht, die Silverlight-Assembly (von Nicht-Silverlight-Assembly) mit der Helferklasse zu referenzieren, die das Bild zurückgibt. Aber das ist nur hässlich.

  • Gibt es eine Möglichkeit, den WCF-Dienst in Silverlight zu hosten?
  • Falls nein, gibt es eine andere Möglichkeit, das Image von der Silverlight -> Nicht-Silverlight-Serviceklasse zu erhalten

Vielen Dank, Kate

Hinweis: Die Silverlight Kontrolle ist eine massive, undin drei anderen Projekten (Editor, Viewer, Windows Phone 7-Anwendung) verwendet, so kann ich es wirklich nicht bewegen. Auch Silverlight WPF-ähnliche Zeichnung ist weit besser als Nicht-Silverlight.

Antworten:

1 für die Antwort № 1

Es gibt viele Möglichkeiten, dies zu tun, und ich bin mir nicht ganz klar darüber, was Sie erreichen möchten, aber so etwas sollte funktionieren:

(1) Die WriteableBitmap.Pixels -Eigenschaft sollte eine RGBA-Version des fraglichen Bildes enthalten.

(2) Verwenden Sie FJCore, um die RGBA-Bytes in das JPEG-Format zu konvertieren.

(3) Übermitteln Sie die JPEG-Datei (in einem Array byte [] enthalten) über einen Anruf an den Web-Service.

(4) Speichern Sie die Datei im Webdienst an einem geeigneten Speicherort, an dem die anderen Nicht-Silverlight-Anwendungen darauf zugreifen können.

Würde das etwas tun, was du brauchst?