Ruby에서 QR 코드 생성에 rQrCode을 사용하고 있습니다. 그러나 배경색을 변경하거나 생성 된 QR 코드 중간에 이미지를 추가하고 싶습니다. 나는 약간의 조사를했지만 아무것도 발견하지 못했습니다.Ruby에서 로고 또는 배경색이있는 QR 코드 생성
아직 Ruby에서 구현 한 사람이 있습니까? 아니면 그것에 대해 알고 있습니까?
고마워요.
Ruby에서 QR 코드 생성에 rQrCode을 사용하고 있습니다. 그러나 배경색을 변경하거나 생성 된 QR 코드 중간에 이미지를 추가하고 싶습니다. 나는 약간의 조사를했지만 아무것도 발견하지 못했습니다.Ruby에서 로고 또는 배경색이있는 QR 코드 생성
아직 Ruby에서 구현 한 사람이 있습니까? 아니면 그것에 대해 알고 있습니까?
고마워요.
나는 Ruby에서 QR 코드를 생성하기 위해 rQrCode을 사용하고 있습니다. 하지만 배경 색상을 변경하려면 [...] 검토
rQrCode documentation 당신도 이미지, ANSI, SVG 또는 QR 코드를 생성 할 때 다음과 같은 :color
옵션을 사용하여 QR 코드의 채우기 색상을 변경 HTML 테이블로는 다음과 같습니다
require "rqrcode"
qrcode = RQRCode::QRCode.new("http://stackoverflow.com/questions/42691235/generate-qr-codes-with-a-logo-or-having-background-colors-in-ruby")
image = qrcode.as_png(color: "000")
svg = qrcode.as_svg(color: "000")
html = qrcode.as_html # `td.black { border-color: #000; }` in stylesheet
string = qrcode.as_ansi(dark: "\033[40m")
당신은 대신
qrcode = RQRCode::QRCode.new("http://stackoverflow.com/questions/42691235/generate-qr-codes-with-a-logo-or-having-background-colors-in-ruby")
image = qrcode.as_png(fill: "000")
svg = qrcode.as_svg(fill: "000")
html = qrcode.as_html # `table { background-color: #000; }` in stylesheet
string = qrcode.as_ansi(light: "\033[40m")
이 중 하나를 함께 사용할 수있는 fill
옵션을 사용하여 배경 색상을 변경할 수 있습니다 오 r 혼자, 너까지.
그러나 사용 된 색상의 대비에 따라 본인 또는 다른 사람의 QR 스캐너에서 읽을 수 없게 될 수도 있음을 알려드립니다. 또한 QR 코드를 검은 색 사각형으로 변경하면 다른 색으로 QR 코드가 깨지거나 스캐너에 등록되지 않을 수 있습니다. 화상을 추가하거나 병합로서
[...] 또는 생성 된 QR 코드의 중앙에 화상을 추가한다.
이전과 당신의 QR 코드를 생성하고 그것을주는 Transparent background colour
# require "chunky_png" # this already required by `rqrcode`
require "rqrcode"
qrcode = RQRCode::QRCode.new("http://stackoverflow.com/questions/42691235/generate-qr-codes-with-a-logo-or-having-background-colors-in-ruby")
TRANSPARENT = ::ChunkyPNG::Color::TRANSPARENT
qr_image = qrcode.as_png(fill: TRANSPARENT, module_px_size: 4)
_ 당신은 내 다음 example._에 유용
는 다음과 같은 로고를로드의 module_px_size: 4
옵션을 무시할 수 있습니다 별개의 이미지와 합리적인 너비로 새로운 이미지를 작성하십시오. & 높이 오프셋; 내가 더 큰 이미지
logo = ChunkyPNG::Image.from_file("logo.png")
height = (logo.dimension.height/2).floor - (qr_image.dimension.height/2).floor
width = (logo.dimension.width/2).floor - (qr_image.dimension.width/2).floor
qr_composed = logo.compose(qr_image, width, height)
qr_composed.save("qr_composed.png")
나는 큰 이미지를 구성하기 전에 어떤 결정하는 논리를 생략 한 내에서 알려진 작은 이미지를 중심 그렇지 않으면 당신은 가능성이 만남의 경계 부족 오류, 같은 그러나
~/gems/2.3.0/gems/chunky_png-1.3.8/lib/chunky_png/canvas/operations.rb:393:in `check_size_constraints!': Background image width is too small! (ChunkyPNG::OutOfBounds)
, 당신은 비어있는 새 이미지를 만들고 로고 & QR 코드 이미지 수평을 병합 할 수 있습니다; 예 :
new_width = logo.dimension.width + qr_image.dimension.width
qr_merged_horizontally = ChunkyPNG::Image.new(new_width, logo.dimension.height, ::ChunkyPNG::Color::WHITE)
qr_merged_horizontally.compose!(logo, 0, 0)
qr_merged_horizontally.compose!(qr_image, logo.dimension.width)
qr_merged_horizontally.save("qr_merged_horizontally.png")
또는 수직; 예 :각각 그 폭 또는 높이를 결합함으로써
new_height = logo.dimension.height + qr_image.dimension.height
qr_merged_vertically = ChunkyPNG::Image.new(logo.dimension.width, new_height, ::ChunkyPNG::Color::WHITE)
qr_merged_vertically.compose!(logo, 0, 0)
qr_merged_vertically.compose!(qr_image, 0, logo.dimension.height)
qr_merged_vertically.save("qr_merged_vertically.png")
.
그렇지 않으면 이미지를 서로 배치하는 데 더 많은 외부 정보 또는 수동 조작이 필요합니다.
참고 :
이 유용 할 수 있는지 여부를 확인하시기 바랍니다. http://stackoverflow.com/questions/29531726/ruby-rails-how-to-generate-qr-code-images-in-different-color – Sajin