Wie man Weg von Eigenschaften.Ressourcen.Bild in .NET
Ich ein Bild als Ressource nach diesem post:
Wie erstellen und verwenden von Ressourcen in .NET
Verwende ich PDFSharp Bibliothek zum erstellen einer PDF-Datei. Die Methode zum zeichnen eines Bildes, benötigt den Pfad des Bildes. Wie bekomme ich den Pfad von Properties.Resources.Image
?
Oder gibt es einen anderen Weg, dies zu tun?
Du musst Sie nicht speichern Sie das Bild (Bitmap) um es zu zeichnen, siehe meine Antwort für ein Beispiel.
Ich kann nicht sehen, wie die akzeptierte Antwort, mit Bild speichern auf der Festplatte, könnte die "bessere" option. Es ist mehr code beteiligt, was bedeutet, mehr zu pflegen und beeinträchtigt die Lesbarkeit. Auch die Bilder dupliziert werden auf der Festplatte (die Ressource ist bereits unter disk space) und nehmen mehr Speicherplatz, mehr code für das löschen von temporären Bilder und macht Sie fehleranfällig. Alles, was Sie wirklich brauchte, war, sich zu ändern-Methode aufrufen, dies zu vermeiden.
Einige Leute schreiben PDFsharp, wenn Sie tatsächlich nutzen, MigraDoc verwendet PDFsharp). Für MigraDoc müssen Sie einen Dateinamen ein, also das speichern einer Datei ist OK. Für PDFsharp, mit dem Bild so besser ist das speichern in einer Datei ist nicht notwendig. Da ist die Frage hat keine MigraDoc tag, ich nehme an, deine Antwort ist besser.
Es wäre schön gewesen, zu wissen, was der Fall wirklich ist, dann hier =)
Ich kann nicht sehen, wie die akzeptierte Antwort, mit Bild speichern auf der Festplatte, könnte die "bessere" option. Es ist mehr code beteiligt, was bedeutet, mehr zu pflegen und beeinträchtigt die Lesbarkeit. Auch die Bilder dupliziert werden auf der Festplatte (die Ressource ist bereits unter disk space) und nehmen mehr Speicherplatz, mehr code für das löschen von temporären Bilder und macht Sie fehleranfällig. Alles, was Sie wirklich brauchte, war, sich zu ändern-Methode aufrufen, dies zu vermeiden.
Einige Leute schreiben PDFsharp, wenn Sie tatsächlich nutzen, MigraDoc verwendet PDFsharp). Für MigraDoc müssen Sie einen Dateinamen ein, also das speichern einer Datei ist OK. Für PDFsharp, mit dem Bild so besser ist das speichern in einer Datei ist nicht notwendig. Da ist die Frage hat keine MigraDoc tag, ich nehme an, deine Antwort ist besser.
Es wäre schön gewesen, zu wissen, was der Fall wirklich ist, dann hier =)
InformationsquelleAutor Crystal | 2013-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
Properties.Resources.Image
ist in-memory-Ressource.Können Sie save Image in temp-Datei und der Pfad.
Oben verwendet Bitmap.Speichern
danke. Antwort aktualisiert.
Wenn ich versuche
File.WriteAllBytes(path, Properties.Resources.logo;);
bekomme ich invalid expression term. Wenn ichFile.WriteAllBytes(path, Properties.Resources.logo);
bekomme ich die Fehler: 1) Die beste übereinstimmung für die überladene Methode-System.IO.Datei.WriteAllBytes hat ungültige Argumente. 2) Argument 2: cannot convert aus dem System.Zeichnung.Bitmap byte[].Ohh die bitmap, es ist besser, API
bitmap.Save()
Ich bekomme eine Fehlermeldung über eine generelle Ausnahme von GDI+, wenn die Save-Methode aufgerufen wird. ist das üblich?
InformationsquelleAutor Tilak
Kann man tatsächlich ein Bild zu erstellen, ohne es zu speichern, mit
XImage.FromGdiPlusImage()
:InformationsquelleAutor Mario Sannum
Als der PDFsharp/MigraDoc 1.50 beta 2 und neuere, die Sie nicht mehr benötigen einen Pfad bei der Verwendung von MigraDoc. Es wurde bereits erwähnt, dass PDFsharp nicht mit einem Dateinamen, die als Bilder gelesen werden können, von z.B. streams.
MigraDoc noch einen string als Parameter benötigt. Sie codieren der Bilddaten als string (BASE64-format) und übergeben Sie die Zeichenfolge als Dateiname.
Siehe auch:
http://pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx
InformationsquelleAutor Vive la déraison