从字节数组创建 VSTO 形状

本文关键字:VSTO 形状 创建 数组 字节 字节数 | 更新日期: 2023-09-27 18:36:31

我有一个编码在字节数组中的图像,我想将其添加为 excel 文档中的形状,但不幸的是,我看到的唯一可用功能需要我将图像保存到驱动器,然后读取它。如您所见,这是一个非常缓慢的操作,我想简单地从字节流中读取图像并将其解码为位图。

我这样编码它:

                    JpegBitmapEncoder encoder = new JpegBitmapEncoder();
                    encoder.Frames.Add(BitmapFrame.Create(rtb));
                    encoder.QualityLevel = 100;
                    byte[] bit = null;
                    using (var ms = new MemoryStream())
                    {
                        encoder.Frames.Add(BitmapFrame.Create(rtb));
                        encoder.Save(ms);
                        bit = ms.ToArray();
                    }

现在,如何将其添加到工作表?Shapes.AddPicture 方法只接受文件名,不能从流中读取。

从字节数组创建 VSTO 形状

Excel 对象模型不提供任何用于读取字节数组并将其添加为形状的方法。因此,唯一可能的解决方案是将字节数组另存为磁盘上的文件,然后将其添加为形状,如前所述:

将映像保存到驱动器,然后读取它。