【问题标题】:How to generate a EAN13 barcode?如何生成 EAN13 条码?
【发布时间】:2016-03-28 23:58:39
【问题描述】:

我正在尝试创建一个简单的 EAN13 图像来显示字符串中的条形码。

我尝试使用此代码,但它只能生成 code128。我可以使用什么来生成 EAN13?

class Barcode {

  class func fromString(string : String) -> UIImage? {

      let data = string.dataUsingEncoding(NSASCIIStringEncoding)
      let filter = CIFilter(name: "CICode128BarcodeGenerator")
      filter.setValue(data, forKey: "inputMessage")
      return UIImage(CIImage: filter.outputImage)
  }
}

let img = Barcode.fromString("1234567890123")

【问题讨论】:

标签: ios swift barcode ean-13


【解决方案1】:

你可以试试这个EAN13BarcodeGenerator

用法很简单:

BarCodeView *barCodeView = [[BarCodeView alloc] initWithFrame:kBarCodeFrame];
[self.view addSubview:barCodeView];
[barCodeView setBarCode:GetNewRandomEAN13BarCode()];

【讨论】:

  • Swift 版本:let rect = CGRect(x: 100, y: 55, width: 113, height: 100) letbarcodeView = BarCodeView(frame: rect) self.view.addSubview(barcodeView)barcodeView .barCode = "4012345678901"
【解决方案2】:

我的两美分 osx..

func barCodeFromString(string : String, destSize: NSSize) -> NSImage? {
    let data = string.data(using: .ascii)
    guard let filter = CIFilter(name: "CICode128BarcodeGenerator") else{
        return nil
    }

    filter.setValue(data, forKey: "inputMessage")
    guard let ciImage : CIImage = filter.outputImage else{
        return nil
    }

    let c_size = ciImage.extent.size

    let w_ratio = destSize.width/c_size.width
    let h_ratio = destSize.height/c_size.height
    let ratio = w_ratio>h_ratio ? h_ratio : w_ratio
    let transform = CGAffineTransform(scaleX: ratio, y: ratio)
    let scaled = ciImage.transformed(by: transform)

    let rep = NSCIImageRep(ciImage: scaled)
    let nsImage = NSImage(size: rep.size)
    nsImage.addRepresentation(rep)
    return nsImage
}

【讨论】:

  • 问题是如何生成 EAN13 条码,而不是 Code128 条码。
  • 我知道..这就是我写“我的 2 美分...”的原因:)
  • 目标是回答问题。
  • 只需从“CICode128BarcodeGenerator”更改为:“CIQRCodeGenerator”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 2018-02-09
相关资源
最近更新 更多