Programmgesteuertes Hinzufügen von Bildern zum RTF-Dokument

Ich versuche ein Bild hinzufügen, um ein RTF-Dokument, das ich erschaffe. Ich würde es lieber nicht verwenden "copy/paste" - Methoden (das einbeziehen einfügen das Bild in einem RichTextBox-Steuerelement, und dann Zugriff auf die .RTF-Eigenschaft), die purge-die Zwischenablage (und damit Störung und Verwirrung für meine Endbenutzer).

Den code habe ich bislang gibt den string zurück, muss eingefügt werden in das RTF-Dokument, das Bild zu drucken. Das Bild eingegeben werden ($Pfad) ist in der Regel im bmp-oder jpeg-format, aber in diesem Stadium bin ich nicht betroffen mit, wie das Bild gespeichert ist innerhalb der RTF nur, dass ich es bekommen kann, zu arbeiten.

public string GetImage(string path, int width, int height)
{
    MemoryStream stream = new MemoryStream();
    string newPath = Path.Combine(Environment.CurrentDirectory, path);
    Image img = Image.FromFile(newPath);
    img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);

    byte [] bytes = stream.ToArray();

    string str = BitConverter.ToString(bytes, 0).Replace("-", string.Empty);
    //string str = System.Text.Encoding.UTF8.GetString(bytes);

    string mpic = @"{\pict\pngblip\picw" + 
        img.Width.ToString() + @"\pich" + img.Height.ToString() +
        @"\picwgoa" + width.ToString() + @"\pichgoa" + height.ToString() + 
        @"\hex " + str + "}";
    return mpic
}

Aber das problem ist, dass dieser code funktioniert nicht, weil so weit wie ich sagen kann, das string str, nicht die richtigen string-Konvertierung in das RTF.

Edit: Mein problem war, fehlt ein Leerzeichen nach dem \hex in @"\hex "und auch nicht entfernen der" - " - Zeichen aus den zurückgegebenen Wert der BitConverter

InformationsquelleAutor der Frage | 2009-09-29

Schreibe einen Kommentar