MiniMagick::Imageを使った際に画像が白黒(モノクロ)になってしまうことがある OSによって起きたり起きなかったりする 理由は裏側で動いているImageMagicに渡っている値が違うことによる模様
画像のオプションに
c.colorspace "sRGB"
といった記述を追加する。
実際のコードを紹介します。
require "mini_magick"
require 'rqrcode'
require 'chunky_png'
= RQRCode::QRCode.new('URL')
qr_code
= qr_code.as_png(
qr_png color: "black",
fill: "white",
size: 2000
)
# Open QR-Code image with MiniMagick
= MiniMagick::Image.create do |f|
qrcode_image .write(qr_png)
fend
# Open logo with MiniMagick and resize it if needed
= MiniMagick::Image.open("画像パス")
logo_image .resize("600x600")
logo_image
# Combine both images
= qrcode_image.composite(logo_image) do |c|
result .colorspace "sRGB" #←これを追加
c.compose "Over"
c.geometry "+700+700"
cend
IO.binwrite("./qr.png", result.to_blob.to_s)