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

问题描述

我需要像这样将条形码图片添加到 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);

错误说“对象”不包含“保存”的定义,并且找不到接受“对象”类型的第一个参数的扩展方法“保存”

标签: c#asp.netbarcode

解决方案


barnhill/barcodelib Barcode(第 336 行)

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

该方法与Image类型一起返回。


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

using System.Drawing;

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

参考

barnhill/barcodelib,C#条码图像生成库(示例部分),下载barcodelib的源码_GitHub_帮酷


推荐阅读