1차원/2차원 바코드를 생성하는 for Ruby

8929 단어 QRcodeRubybarcode
중고 QR 바코드 리더AT10Q-SM를 구매해 바코드 생성 방법을 조사했다.
루비로 1차원 바코드와 2차원 바코드(QR코드)를 생성하는 방법을 설명한다.이번에 barby 라이브러리를 이용하여 바코드를 생성합니다.
다음 프레젠테이션 앱을 만들기 위해서는 많은 조사 결과가 남는다.
QR 코드에 라우터를 포함하는 명령은 QR 바코드 판독기를 통해 읽을 수 있으며 명령을 신속하고 정확하게 수행할 수 있습니다.‼️ pic.twitter.com/lFlKjcNX77 — kooshin (@kooshin) 2016년 11월 6일.
이번에는 문자열을 삽입한 QR 바코드(QR코드)와 1차원 바코드(code128)를 만드는 방법을 예로 들어 보겠습니다.

컨디션


환경 및 라이브러리는 다음과 같습니다.
  • Ruby 2.3.1
  • barby 0.6.4
  • rqrcode 0.10.1
  • chunky_png 1.3.7
  • Gemfile
    source "https://rubygems.org"
    gem 'barby'
    gem 'rqrcode'
    gem 'chunky_png'
    

    QR 바코드(QR코드)


    QR 코드를 생성합니다.PNG 및 base 64로 출력합니다.
    매개 변수로 지정된 크기 (버전) 와 level (오류 수정 단계) 은 QR 사이즈는? 에 상세하게 기록되어 있습니다.
    qrcode.rb
    require 'barby/barcode/qr_code'
    require 'barby/outputter/png_outputter'
    
    # パラメータ
    content = 'show ip route' # QRコードの中身
    size    = 3 # QRコードのバージョン 1〜40
    level   = :m # 誤り訂正レベル, l/m/q/h
    xdim    = 3  # 一番細いバーの幅
    
    # QRコード生成
    qrcode = Barby::QrCode.new(content, size: size, level: level)
    
    # PNGで出力
    png_file = 'output.png' # 出力PNGファイル名
    File.open(png_file, 'wb') do |f| 
      f.write qrcode.to_png(xdim: xdim)
    end
    
    # HTMLのimgタグ用のbase64で出力
    puts qrcode.to_image(xdim: xdim).to_data_url
    

    실행 결과


    QR 코드를 PNG 이미지 파일로 생성합니다.

    베이스 64를 HTML로 내보냅니다.
    base 64 출력 결과
    data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAABrAQAAAABYxEGhAAABaUlEQVR4nMVTMWrDMBSV7IC61M5qsLEhJ8imgMHZco4eIZ46xTKdm9yg98hWQcDaegU5NmSN08WCOqq6JaGt/tT+7aHH1/vv/+foy5IOuqr/gxw7PHLEqMOYWclEHynSj0GpPwAfYUbcbtsinoBUiXqNJHgEzX57vYSaKdPcZZm0kxUekygnswKP7ORMn1UVzZuN1nbrxLBcpLivMR7sZHqI+zoXkyMByBBBzuOzkmga2sl0ss52JxqVVQPSfJdu/Ph5VtvJ053fo6LjTKR2GSR9mMvSGKIl4ESRJ4a1aMaqBQzYnlRifF7OAW686bg6GJ/P4rvX287DnoYrJZ9eAWSEXkRrfD4i124dd/co8P1wswB0zpCnKt3JYgsIrEk3CvAiORFAYL/S3XpCej9MdA0xEyHu23IGWIopanxOiz6zazZFkpVqcsIBZBO9gNHkHgM0m3TzxvfRewVYikl3hpa99CjgkP4IfgKDDKGqCDKCLwAAAABJRU5ErkJggg==
    
    base 64 출력 결과는 다음과 같이 HTML 태그의 src 속성으로 지정된 경우 HTML에 이미지를 포함할 수 있습니다.
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAABrAQAAAABYxEGhAAABaUlEQVR4nMVTMWrDMBSV7IC61M5qsLEhJ8imgMHZco4eIZ46xTKdm9yg98hWQcDaegU5NmSN08WCOqq6JaGt/tT+7aHH1/vv/+foy5IOuqr/gxw7PHLEqMOYWclEHynSj0GpPwAfYUbcbtsinoBUiXqNJHgEzX57vYSaKdPcZZm0kxUekygnswKP7ORMn1UVzZuN1nbrxLBcpLivMR7sZHqI+zoXkyMByBBBzuOzkmga2sl0ss52JxqVVQPSfJdu/Ph5VtvJ053fo6LjTKR2GSR9mMvSGKIl4ESRJ4a1aMaqBQzYnlRifF7OAW686bg6GJ/P4rvX287DnoYrJZ9eAWSEXkRrfD4i124dd/co8P1wswB0zpCnKt3JYgsIrEk3CvAiORFAYL/S3XpCej9MdA0xEyHu23IGWIopanxOiz6zazZFkpVqcsIBZBO9gNHkHgM0m3TzxvfRewVYikl3hpa99CjgkP4IfgKDDKGqCDKCLwAAAABJRU5ErkJggg==" />
    

    1차원 바코드


    코드128B로 1차원 바코드를 생성합니다.
    code128.rb
    require 'barby/barcode/code_128'
    require 'barby/outputter/png_outputter'
    
    # パラメータ
    content = 'show ip route' # QRコードの中身
    xdim    = 3  # 一番細いバーの幅
    
    code128 = Barby::Code128B.new(content)
    
    # PNGで出力
    png_file = 'code128.png' # 出力PNGファイル名
    File.open(png_file, 'wb') do |f|
      f.write code128.to_png(xdim: xdim)
    end 
    
    # HTMLのimgタグ用のbase64で出力
    puts code128.to_image(xdim: xdim).to_data_url
    

    실행 결과


    1차원 바코드는 PNG 이미지 파일로 생성됩니다.코드128B 형식이면 숫자 이외에 영문도 입력할 수 있습니다.

    base 64 출력 결과
    data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAioAAAB4AQAAAAD0kuTLAAAAv0lEQVR4nO3PwQ2CQBQE0P+RxD2BBUDcNjhBSUoBbtYC0JKWE21goADhtCaYb7YFwwHjzG0yyUsmkjXiIlolYMB8x7TjTKNV4/zSUpBVOVe5UfFUaVH6VvGhfZiwck2cFu+wcm4KfQ81vhLX7fZOgQEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAHzg0yZJZQZnyX7njsyfhA3WL+krmffn508y6MNqzQkU7cLqwy260+hLheSptzeKTB/xXwA+KOEbO4XACgAAAAASUVORK5CYII=
    

    참고 자료

  • 바코드의 구조
  • QR 사이즈는?
  • CODE 128 및 GS1-128
  • github - toretore/barby
  • Ruby를 사용하여 QR 코드 이미지를 간단하게 생성하는 방법
  • Ruby(Rails)로 문자가 추가된 QR 코드를 간단하게 생성하는 방법
  • 좋은 웹페이지 즐겨찾기