1

最近從RMagick切換到Mini_Magick。我收到錯誤undefined method 'write' for "":String。下面是我上傳的樣子......CarrierWave + Mini_Magick:未定義的方法寫入「」:字符串

class BackgroundUploader < CarrierWave::Uploader::Base 
    include CarrierWave::MiniMagick 
    include CarrierWave::MimeTypes 
    process :set_content_type 

    storage :file 

    def store_dir 
    "uploads/backgrounds/#{model.id}" 
    end 

    def default_url 
    "/assets/fallback/default.jpg" 
    end 

    process :resize_to_fit => [1024, 1024] 
    process :convert => 'jpg' 
    process :fix_exif_rotation 

    def fix_exif_rotation 
    manipulate! do |img| 
     img.auto_orient 
     img = img.gaussian_blur 5 
     img = yield(img) if block_given? 
     img 
    end 
    end 

    def extension_white_list 
    %w(jpg jpeg png) 
    end 

end 

問題在於fix_exif_rotation方法。如果我註釋掉行process :fix_exif_rotation一切正常。我已經刪除了從auto_orient調用結束時,因爲從RMagick切換到Mini_Magick時似乎導致其他人遇到問題。

任何幫助將不勝感激。從上面的鏈接「相關問題2」

回答

2

This意見建議分配給IMG公司除了(!?)的產量,可以打破的東西,所以我的第一個猜測是嘗試的只是img.gaussian_blur 5代替img = img.gaussian_blur 5

否則:堆棧跟蹤?

+0

啊哈!你是對的。謝謝你的幫助。現在唯一的價值是通過(在這種情況下5)似乎沒有效果。我是否提供無,5,50,100 ......結果是相同的模糊半徑。那裏有任何想法? – gbdev

+1

mini_magick是一個非常簡單的寶石,所以沒有太多可以出錯的地方。我無知的猜測是,這種變化是不可見的。基於[imagemagick文檔](http://www.imagemagick.org/www/command-line-options.html#gaussian-blur),也許你應該嘗試像「10x3」這樣的參數來表示半徑和西格瑪。 – Taavo

+1

再次釘住它。謝謝Taavo!對於其他人來說,這些文檔[這裏](http://www.imagemagick.org/Usage/blur/#blur_args)確實有助於理解這一切。 – gbdev

相關問題