Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
System.AddIn und BitmapImage
dennisspohr
myCSharp.de - Member

Avatar #avatar-2982.jpg


Dabei seit:
Beiträge: 420
Herkunft: Westerwald

Themenstarter:

System.AddIn und BitmapImage

beantworten | zitieren | melden

Hallo zusammen,

ich bin gerade dabei ein kleines Bildbearbeitungsprogramm zu entwickeln, welches sich durch AddIns erweitern lassen soll. Hier sollen den AddIns nacheinander das entsprechende BitmapImage übergeben werden, welche dieses dann bearbeitet können. (Stapelprozess)

Ich benutze System.AddIn. Das Problem: Ich kann das BitmapImage leider nicht übergeben, dass dieses nicht serialisierbar ist. (Es wird ein Fehler geworfen)

Wegen der Performance wäre es sehr schlecht, wenn jedes AddIn das Bild öffnen, bearbeiten und wieder speichern müsste.

Gibt es irgendwie eine Möglichkeit, das BitmapImage zu übergeben?

Velen Dank für eure Hilfe.

Grüße
Dennis
private Nachricht | Beiträge des Benutzers
Counterfeit
myCSharp.de - Member



Dabei seit:
Beiträge: 116
Herkunft: Kassel

beantworten | zitieren | melden

Evtl. kannst du das für deinen Fall umschreiben:
Walkthrough: Passing Collections Between Hosts and Add-Ins

Was auch gehen würde, hängt natürlich stark von der Größe des Bildes ab, das ganze als MemoryStream zu übertragen.
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

MemoryStream ist nur der Ursprung des Bildes. Das Bild liegt dann quasi auch zweimal im Speicher (einmal MemoryStream und einem Bild-Instanz)

Was du allerdings machen kannst, das Bild manuell mittels WinAPI öffnen und jeder AppDomain das Handle mitteilen und davon dann eine Bitmap-Instanz oder in deinem Fall BitmapImage zu holen. Solltest dir aber ganz genau überlegen, an welcher Stelle du das Handle wieder zerstörst.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von kleines_eichhoernchen am .
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
private Nachricht | Beiträge des Benutzers
Viper78
myCSharp.de - Member



Dabei seit:
Beiträge: 162
Herkunft: Dortmund

beantworten | zitieren | melden

Schon mal über MEF nachgedacht?
Das ist eine erneuerund der System.Addin .

In meinem Programm selber lade ich über Reflection eine Klasse.
An diese kann ich alles Übergeben.

Für Net-Remoting hab ich ein Bild Serialisieren müssen.
Ich wandel das Bild in eine Byte-Array um. Dieser ist dann Serialisier bar.
Das Funktioniert genauso wie man ein Bild in einem Blob in einer SQL DB speichert.

MfG
Björn
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Viper78 am .
Das Leben ist schön!
private Nachricht | Beiträge des Benutzers
dennisspohr
myCSharp.de - Member

Avatar #avatar-2982.jpg


Dabei seit:
Beiträge: 420
Herkunft: Westerwald

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen,

vielen Dank für eure Antworten.

MEF kannte ich bisher noch nicht. Klingt sehr interessant und vielversprechend, werde mir das mal genauer anschauen. Danke für den Tipp.

Grüße
Dennis
private Nachricht | Beiträge des Benutzers