2014-03-28 1 views
0

Event 모델의 모델 번호는 photographs입니다. Photoss 속성에 이미지 업 로더가 설치되어 있고 정기적 인 업로드와 모든 것이 잘 작동합니다.Carrierwave 이미지를 복제하면 더 어두워 집니까?

그러나 이벤트를 복제하고 새 이벤트에 대한 새 사진 객체를 다시 만들면 새 이미지가 원본보다 어두워지고 중복 이벤트를 복제하면 어두워집니다.

나는 그걸 가지고 놀았지만 해결책이 없습니다.

내 업 로더 코드 :

class ImageUploader < CarrierWave::Uploader::Base 

    include CarrierWave::RMagick 
    include CarrierWave::Processing::RMagick 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    def cache_dir 
    "#{Rails.root}/tmp/carrierwave" 
    end 

    process :colorspace => :rgb 

    # Remove EXIF data 
    process :strip 

    # Create different versions of your uploaded files: 
    version :thumb do 
    process :resize_to_limit => [640, 640] 
    end 

    version :preview_thumb do 
    process :resize_to_limit => [600, 600] 
    end 

    version :wine_thumb do 
    process :resize_to_limit => [160, 440] 
    end 

    version :logo_thumb do 
    process :resize_to_limit => [90, 90] 
    end 
end 

그리고 (활성 관리자에서) 내 duplcation 코드 :

member_action :create_duplicate_event, method: :post do 
    old_event = Event.find(params[:id]) 
    photograph_urls = old_event.photographs.map(&:image_url) 
    attributes = old_event.attributes.except("photographs", "id") 

    new_photos = [] 
    photograph_urls.each do |photo| 
    new_photo = Photograph.new({ 
     remote_image_url: photo 
    }) 

    if new_photo.save 
     new_photos << new_photo 
    end 
    end 
    @event = Event.new(attributes) 
    @event.photograph_ids = new_photos.map(&:id) 

    render "/admin/events/_events_form/" 
end 

: RGB 태그를 해결하기 위해 시도했다. 그러나 운이 없다.

루비 2.1 및 레일 4.0

답변

1

좋아, 장난 나는이 문제를 해결하기 위해 관리 검색을 많이 후.

우선, here에서 찾을 수있는 .icc 색상 프로파일을 다운로드해야합니다. 그것은 창문에 대해 말한다. 그러나 그들은 나의 Mac에서 나를 위해 일하는 것처럼 보였다.

당신이 /lib/color_profiles 디렉토리에 .icc 파일을 넣어하면, 당신의 업 로더에 다음 코드를 추가

class ImageUploader < CarrierWave::Uploader::Base 
    include CarrierWave::RMagick 

    process :convert_image_from_cmyk_to_rgb 

    #versions, and any other uploader code go here 

    def convert_image_from_cmyk_to_rgb 
    manipulate! do |image| 
     if image.colorspace == Magick::CMYKColorspace 
     image.strip! 
     image.add_profile("#{Rails.root}/lib/USWebCoatedSWOP.icc") 
     image.colorspace == Magick::SRGBColorspace 
     image.add_profile("#{Rails.root}/lib/sRGB.icc") 
     end 
     image 
    end 
    end 
end 

이 CMYK 이미지를 RGB로 변환하고, 같은 RGB 이미지를 유지하면서 프로파일, 좋은 유지 유지 그들은 그 (것)들이었고, 그들을 파멸시키지 않았습니다.

앞으로 도움이되기를 바랍니다. 그리고이 작업에 소비 한 시간을 절약 해 주시기 바랍니다.

관련 문제