object' 不包含 'Save' 的定义,并且找不到接受 'object' 类型的第一个参数的扩展方法 'Save'

object' does not contain a definition for 'Save' and no extension method 'Save' accepting a first argument of type 'object' could be found

我需要像这样将条码图片添加到 crpReport 中的 Barcodemat 列

r["BarcodeMat"] = ImageToByte2(bar.Encode(typebq, data, w, hh));

这是我的函数 ImageToByte2

 private byte[] ImageToByte2(object img)
{
    byte[] byteArray = new byte[1];
    using (MemoryStream stream = new MemoryStream())
    {
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        stream.Close();
        byteArray = stream.ToArray();
    }
    return byteArray;
}

我有错误

img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);

错误说 'object' 不包含 'Save' 的定义,并且找不到接受类型 'object' 的第一个参数的扩展方法 'Save'

来自 barnhill/barcodelib Barcode (Line 336),

public Image Encode(TYPE iType, string StringToEncode, int Width, int Height)

方法返回 Image 类型。


因此,将 img 参数更改为 Image 类型。

using System.Drawing;

private byte[] ImageToByte2(Image img)
{
    ...
}

参考资料

GitHub - barnhill/barcodelib: C# Barcode Image Generation Library (Example section)