Estoy tratando de agregar una imagen a un documento RTF que estoy creando. Preferiría no usar métodos de "copiar/pegar" (que implican pegar la imagen dentro de un RichTextBox y luego acceder a la propiedad .RTF) que purga el portapapeles (ya que esto será una molestia y confusión para mis usuarios finales).Agregando imágenes programáticamente al documento RTF
El código que tengo hasta ahora devuelve la cadena que debe insertarse en el documento RTF para imprimir la imagen. La imagen ingresada (ubicada en $ path) suele estar en formato bmp o jpeg, pero en esta etapa no me preocupa cómo se almacena la imagen dentro del RTF, solo que puedo hacer que funcione.
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
}
Sin embargo, el problema es que este código no funciona porque por lo que yo puedo decir, la cadena str no tiene la conversión cadena correcta para trabajar dentro de la RTF.
Editar: Mi problema faltaba un espacio después del \ hexagonal en @ "\ hexagonal" y tampoco excluyendo los "-" caracteres del valor devuelto de la BitConverter
por encima de la cadena rtf (de la imagen) no se reconoce en Winform Rtf. ¿Alguien tiene idea de cómo proceder para Winform RTF? – JharPaat