gpt4 book ai didi

c# - RichTextBox无法插入图片

转载 作者:行者123 更新时间:2023-11-30 22:44:07 26 4
gpt4 key购买 nike

我想将图片插入到 RichTextBox 中。我在编码中添加了图片。

这是主要代码,添加一个jpg图片:

MemoryStream memoryStream = new MemoryStream();
img.Save(memoryStream,System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] bytes = memoryStream.ToArray();
String width = img.Width.ToString();
String height = img.Height.ToString();
String hexImgStr=BitConverter.ToString(bytes, 0).Replace("-","");
String picStr=@"{\pict\jpegblip\picw"+width+@"\pich"+height+
@"\picwgoal"+width+@"\pichgoal"+height+" "+hexImgStr+"}";

然后我将“picStr”插入到 rtf 文档中。但是图片看不到。我认为“hexImgStr”可能是错误的。我还以另一种方式生成“hexImgStr”:

FileStream fs = new FileStream(imgPath,FileMode.Open);
BinaryReader br=new BinaryReader(fs);
//byte[] bytes=new byte[fs.Length];
String hexImgStr="";
for (long i = 0; i < fs.Length; i++)
{
//bytes[i] = br.ReadByte();
hexImgStr +=Convert.ToString(br.ReadByte(),16);
}

图片也看不到。它有什么问题。

非常感谢。

最佳答案

这里失败的可能性很高。首先是将 RTF 插入正确的位置。真正的问题可能是您生成的确切格式。图像是 RTB 的嵌入式 OLE 对象,它们需要描述对象的元数据 header 。在 .NET 中对此没有任何支持,OLE 嵌入在很久以前就被淘汰了。

我知道的一件事是通过剪贴板将图像放入 RTB。像这样:

    private void button1_Click(object sender, EventArgs e) {
using (var img = Image.FromFile("c:\\screenshot.png")) {
Clipboard.SetImage(img);
richTextBox1.Paste();
}
}

根据需要调整 SelectionStart 属性以确定插入图像的位置。

关于c# - RichTextBox无法插入图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3575286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com