6

是否可以将图像/图片存储(编码)到 pdf417 条码中?如果是这样,是否有任何教程或示例代码?

条形码不能只包含对数据库中图像的引用。客户还希望能够存储他想要的任何图像。

谢谢你。

4

2 回答 2

5

正如 ssasa 提到的,您可以将图像存储为byte数组:

public static byte[] GetBytes(Image image)
{
    byte[] byteArray = new byte[0];
    using (MemoryStream stream = new MemoryStream())
    {
        // you may want to choose another image format than PNG
        image.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        stream.Close();

        byteArray = stream.ToArray();
    }
    return byteArray;
}

...或者,如果它必须是 a string,您可以对其进行 base64 编码:

public static string GetBase64(Image image)
{
    Image yourImage;

    // using the function from the first example
    var imageBytes = GetBytes(yourImage);   

    var encodedString = Convert.ToBase64String(imageBytes);

    return Encoding.UTF8.GetBytes(encodedString);
}

但请记住:PDF417 条码最多可存储 2710 个字符。虽然这对于您想要编码的大多数结构来说已经绰绰有余,但对于图像来说却是相当有限的。对于小型位图、单色图像和/或高度压缩的 JPEG 来说,这可能就足够了,但不要指望能够做更多的事情,特别是如果您希望能够存储其他数据。

如果您的客户希望能够像您所说的那样存储他们想要的任何图片,那么您最好在编写任何代码之前尽快降低他们的期望。

如果可以选择,您可能需要考虑使用QR 码。并不是说你会用这些创造奇迹,但你可能会喜欢增加的存储容量。

于 2014-03-31T20:22:28.350 回答
0

是的,国防部通用访问卡 (CAC)存储持卡人的 JPEG 图像:

在此处输入图像描述

于 2019-05-15T16:01:52.857 回答