Почему изображение не вставляется в RichTextBox? - PullRequest
0 голосов
/ 21 ноября 2018

Я пытался вставить изображение в RichTextBox, нажав кнопку.Я сослался на этот пост - Как я могу вставить изображение в RichTextBox? и сделал исходный код

private void button2_Click(object sender, EventArgs e)
{
    OpenFileDialog f = new OpenFileDialog();
    f.Filter = "BMP (*.bmp)|*.bmp|JPEG (*.jpg, *.jpeg, *.jpe, *.jfif)|*.jpg;*.jpeg;*.jpe;*.jfif|GIF (*.gif)|*.gif|PNG (*.png)|*.png|All files|*.bmp;*.jpg;*.jpeg;*.jpe;*.jfif;*.gif;*.png";

    if (f.ShowDialog() == DialogResult.OK)
    {
        // Get type of the file

        string typeOfFile = "";
        Stack<char> typeParse = new Stack<char>();
        int pointer = f.FileName.Length - 1
        while (pointer > 0 && f.FileName[pointer] != '.')
            typeParse.Push(f.FileName[pointer--]);
        while (typeParse.Count > 0)
            typeOfFile += typeParse.Pop();
        typeOfFile = typeOfFile.ToLower();

        // Convert Image to byte[]

        Image image = Image.FromFile(f.FileName);
        MemoryStream ms = new MemoryStream();
        image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

        // Insert the image data in RichTextBox which is converted to hex from byte[]
        // by using BitConverter.ToString(ms.ToArray();

        StringBuilder imageRTF = new StringBuilder();
        imageRTF.Append(@"{\pict\" + typeOfFile + @"blip\picw" + image.Width + @"\pich" + image.Height);
        imageRTF.Append(@"\picwgoal" + image.Width + @"\pichgoal" + image.Height);
        imageRTF.Append(@" " + BitConverter.ToString(ms.ToArray()) + @"}");
        string rtf1 = richTextBox1.Rtf.Trim().TrimEnd('}');
        string rtf2 = imageRTF.ToString();
        richTextBox1.Rtf = rtf1 + rtf2;
    }
}

, но когда я выполнил и открыл файл png, был вставлен только один разрыв строкив RichTextBox .. Что не так ??

...