1차원/2차원 바코드를 생성하는 for Ruby
루비로 1차원 바코드와 2차원 바코드(QR코드)를 생성하는 방법을 설명한다.이번에 barby 라이브러리를 이용하여 바코드를 생성합니다.
다음 프레젠테이션 앱을 만들기 위해서는 많은 조사 결과가 남는다.
QR 코드에 라우터를 포함하는 명령은 QR 바코드 판독기를 통해 읽을 수 있으며 명령을 신속하고 정확하게 수행할 수 있습니다.‼️ pic.twitter.com/lFlKjcNX77 — kooshin (@kooshin) 2016년 11월 6일.
이번에는 문자열을 삽입한 QR 바코드(QR코드)와 1차원 바코드(code128)를 만드는 방법을 예로 들어 보겠습니다.
컨디션
환경 및 라이브러리는 다음과 같습니다.
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=
참고 자료
Reference
이 문제에 관하여(1차원/2차원 바코드를 생성하는 for Ruby), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kooshin/items/0afd50fa7c647d23af4a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)