저는 Base64 인코딩 이미지를 RoR 애플리케이션에 업로드하고 있습니다. 이미지를 받으면 이미지에 rgb 색 구성표 (올바른 값)가 있습니다. 이미지를 클립 클립으로 업로드하려면 파일에 이미지를 쓸 때 rgb에서 그레이 스케일로 이미지 색 구성표가 변경됩니다.GrayScale에서 Ruby + RMagick + base64 이미지 + RGB 변환이 작동하지 않습니다.
identify -format "%[colorspace]" #{url}
색 구성표가 회색이다 : 나는 결과 생성 된 파일을 확인하면
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 이미지입니다 : 여기
는 코드입니다.추가 정보 : 업로드 된 이미지가 모두 흰색 인 검정색입니다. 동일한 이미지를 빨간색 배경으로 업로드하면 최종 이미지는 RGB 이미지입니다.
모든 채널의 값이 같습니까? 3 채널 모두 동일합니까? 그렇다면 imagemagick의 버전과 파일 생성 방법에 따라 가능합니다. ImageMagick의 어떤 버전을 사용하고 있습니까? 업로드 된 이미지가 원본과 모양이 비슷합니까? 원본에 색상이 있다고 가정하면 업로드 된 버전은 동일하게 보이거나 회색으로 변합니까? – fmw42
안녕하세요, ImageMagick 6.7을 사용하고 있습니다.7-10에서 업로드 된 이미지는 원래 이미지보다 밝아집니다. 예를 들어, 배경 # 242424 (원본 이미지)는 업로드 된 이미지에서 # 303030이됩니다. 감사합니다 – marco