Konvertieren von Bitmap Bild
Nachdem ich also ziehen Sie ein Bild aus der DLL und steckte es in einem Bild-Steuerelement ist es ein BitmapImage. Paket wieder in der dll umgesetzt werden muss, wieder zu einem Bild. Wie kann ich konvertieren es zurück zu Bild und wie kann ich Sie Verpacken Sie es wieder in die dll? Das ist alles in wpf in c# geschrieben.
private void compileDLL_Click(object sender, RoutedEventArgs e)
{
string sourcePath = Directory.GetCurrentDirectory() + "\\PCAngelResources.dll";
//destination path
string dllname = textBox1.Text + "_PCAngelResources.dll";
string targetPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string destFile = System.IO.Path.Combine(targetPath, dllname);
System.IO.File.Copy(sourcePath, destFile, true);
//lstImages = new Dictionary<string, Bitmap>();
//string filename = "PCAngelResources.dll";
Assembly pcangdll = Assembly.LoadFile(sourcePath);
System.Globalization.CultureInfo culture = Thread.CurrentThread.CurrentCulture;
ResourceManager rm = new ResourceManager("PCAngelResources.DynResources", pcangdll);
rs = rm.GetResourceSet(culture, true, true);
ResourceWriter writer = new ResourceWriter(destFile);
foreach (DictionaryEntry resource in rs)
{
resources.Add((string)resource.Key);
if (resource.Key.Equals("Branding") || resource.Key.Equals("Advertising"))
{
if (resource.Key.Equals("Branding"))
{
writer.AddResource("Branding", image5.Source);
//System.Object obj = rm.GetObject((string)resource.Key);
//lstImages.Add((string)resource.Key, (Bitmap)obj);
}
else
if (resource.Key.Equals("Advertising"))
{
writer.AddResource("Advertising", image6.Source);
}
}
}
writer.Generate();
System.Windows.MessageBox.Show("Done", "Process Finished", MessageBoxButton.OK, MessageBoxImage.Asterisk, MessageBoxResult.OK);
}
Wenn ich Schriftsteller.Erzeugen (), um die neue dll bekomme ich folgende Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs 'System.- Laufzeit.Serialisierung.SerializationException " ist in mscorlib.dll
Zusätzliche Informationen: der Typ 'System.Windows.Media.Imaging.BitmapFrameDecode' in Assembly 'PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ist nicht als serialisierbar markiert.
- Einige Beispiel-code?
- Bitte definieren Sie das problem deutlicher.
- aktualisiert code, keine neuen Ideen, wie zum ersetzen der vorhandenen Bildern mit dem Benutzer? Und jede Idee, wie fix der generate () - Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, was du meinst mit "Verpacken Sie es wieder in der DLL" aber es gibt einen einfachen Weg zu konvertieren eine WPF-Bild von einem BitmapSource zurück in ein System.Zeichnung.Bild. Die folgende Methode erledigt das: