0
我的截圖模式有通過CarrierWave附加拍攝的圖像:爲什麼MiniMagick的裁剪方法返回一個空字符串?
class Screenshot < ActiveRecord::Base
attr_accessor :crop_x, :crop_y, :crop_w, :crop_h
mount_uploader :shot, ShotUploader
process_in_background :shot unless Rails.env.test?
end
我有收集裁剪信息爲@screenshot#process_crop
行動的一種形式:
def process_crop
@survey = Survey.find(params[:survey_id])
@review = @survey.review
@screenshot = @survey.screenshots.find(params[:id])
@competitor = @survey.competitor
screenshot = MiniMagick::Image.open(@screenshot.shot.url)
if screenshot_params["crop_x"].present?
x = screenshot_params["crop_x"]
y = screenshot_params["crop_y"]
w = screenshot_params["crop_w"]
h = screenshot_params["crop_h"]
cropped_image = screenshot.crop("#{w}x#{h}+#{x}+#{y}")
uploader = ShotUploader.new
uploader.store!(cropped_image)
end
redirect_to survey_screenshot_path(@survey, @screenshot)
end
我已經證實,X,Y等是明智的賦予圖像尺寸的值。
MiniMagick::Image.open(@screenshot.shot.url)
像您期望的那樣返回一個MiniMagick圖像對象。
但爲什麼screenshot.crop("#{w}x#{h}+#{x}+#{y}")
返回空字符串?
很明顯,我需要它以適合uploader.store!
的格式返回裁剪後的圖像。