gpt4 book ai didi

ruby-on-rails - Ruby + RMagick + base64 图像 + GrayScale 的 RGB 转换不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:57 24 4
gpt4 key购买 nike

我正在将 base64 编码的图像上传到 RoR 应用程序。当我收到图像时,它有一个 rgb 配色方案(正确),当我用回形针 gem 将要上传的图像写入文件时,图像配色方案从 rgb 变为灰度。

代码如下:

source = src.gsub(/^data:image\/(png|jpg|jpeg);base64,/,"")
blob = Base64.decode64(source)
img = Magick::Image.from_blob(blob).first
img.colorspace = Magick::SRGBColorspace
img.add_profile "#{Rails.root.to_s}/lib/color_profiles/RGB.icc"
img.write(url = "#{Rails.root.to_s}/tmp/#{self.id}_logo.png")

image = File.open(url)

img 是正确的 RGB 图像,如果我检查生成的文件:

identify -format "%[colorspace]" #{url}

配色方案是灰色。

附加信息:上传的图片全是黑底白字,如果我上传的是红色背景的同一张图片,最终的图片是正确的 RGB 图片。

最佳答案

在报告将灰度图像转换为 RGB PNG 时,ImageMagick 6.9.9.27 和 7.0.7.15 中似乎存在错误。 Identify -verbose 正在报告灰度,但字符串格式 %[colorspace] 与 PNG 标签一样正确报告 sRGB。我已经报告了这个错误。例如:

convert logo: -colorspace gray logo.jpg
convert logo.jpg PNG24:logo.png
convert logo.png -format "%[colorspace]" info:
sRGB


identify -verbose logo.png
...
Colorspace: Gray
...
png:IHDR.color-type-orig: 2
png:IHDR.color_type: 2 (Truecolor)

关于ruby-on-rails - Ruby + RMagick + base64 图像 + GrayScale 的 RGB 转换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47848991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com