Ich lade Base64-kodierte Bilder in eine RoR-Anwendung hoch. Wenn ich das Bild erhalte, hat es ein RGB-Farbschema (korrekt), wenn ich das Bild auf Datei schreibe, um mit dem Büroklammer-Edelstein hochgeladen zu werden, ändert sich das Bildfarbschema von rgb zu Graustufen. HierRuby + RMagick + base64 Bild + RGB-Konvertierung von GrayScale funktioniert nicht
ist der Code:
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)
das img ist richtig ein RGB-Bild, wenn ich die Folge erstellte Datei überprüfen:
identify -format "%[colorspace]" #{url}
das Farbschema ist Grau.
Zusätzliche Informationen: Das hochgeladene Bild ist schwarz mit weißem Text, wenn ich das gleiche Bild mit rotem Hintergrund hochladen, ist das endgültige Bild korrekt ein RGB-Bild.
Haben alle Kanäle die gleichen Werte? Das sind alle 3 Kanäle gleich? Wenn ja, dann ist das je nach Version von imagemagick und wie die Datei erstellt wurde möglich. Welche Version von ImageMagick benutzt du? Sieht das hochgeladene Bild wie das Original aus? Wenn das Original farbig ist, sieht die hochgeladene Version gleich aus oder ist grau geworden. – fmw42
Hallo, ich benutze ImageMagick 6.7.7-10, das hochgeladene Bild ist heller als das Original, zum Beispiel Hintergrund # 242424 (Originalbild) wird # 303030 auf dem hochgeladenen Bild. Danke – marco