【问题标题】:Show C# generated bitmap in VBA Form以 VBA 形式显示 C# 生成的位图
【发布时间】:2019-10-22 20:46:54
【问题描述】:

我想显示在 C# 库中运行时生成的位图(二维码)(无需将其保存为文件。

所以我创建了一个 COM 可见的类/库,我可以从我的 VBA-Form (ms-access) 中调用它。

但现在我卡住了。我必须使用哪种数据类型将图像(System.Drawing.Bitmap)从 C# 传输到 VBA?我如何才能在表单中显示此图像?

【问题讨论】:

  • 目前我使用 System.Drawing.Bitmap (但可以更改)

标签: c# vba ms-access bitmap


【解决方案1】:

你当前的代码是什么?

您可以将您的图像/位图转换为可供 VBA 图像控件使用的字节数组。

public byte[] GetPicture()
{
    return YourMethodThatReturnsByteArrayFromImage(Image image);
}

在vba中Image.pictureData = ComObject.GetPicture()

【讨论】:

  • 请注意,字节包含与设备相关的位图,因此不适合存储。如果 C# 在本地运行没问题,如果要存储/发送数据,则需要使用与设备无关的位图(Access 中的图像控件也可以将 DIB 处理为图片数据)。
  • btw:我使用了这个代码: byte[] BitmapToBytes(Bitmap bitmap) { using (MemoryStream memory = new MemoryStream()) { bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp );内存.位置 = 0;返回内存.ToArray(); } } 将我的 System.Drawing.Bitmap 转换为字节数组
  • @Erik A:我仅将图像用于显示(和打印)。所以依赖于设备是可以的。不过还是谢谢你的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多