Method: FileColumn::BaseUploadedFile#transform_with_magick

Defined in:
lib/magick_file_column.rb

#transform_with_magickObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/magick_file_column.rb', line 4

def transform_with_magick
  if needs_transform?
    begin
      img = ::Magick::Image::read(absolute_path).first
    rescue ::Magick::ImageMagickError
      if options[:magick][:image_required]
        @magick_errors ||= []
        @magick_errors << "invalid image"
      end
      return
    end
    
    if options[:magick][:versions]
      options[:magick][:versions].each_pair do |version, version_options|
        next if version_options[:lazy]
        dirname = version_options[:name]
        FileUtils.mkdir File.join(@dir, dirname)
        transform_image(img, version_options, absolute_path(dirname))
      end
    end
    if options[:magick][:size] or options[:magick][:crop] or options[:magick][:transformation] or options[:magick][:attributes]
      transform_image(img, options[:magick], absolute_path)
    end

    GC.start
  end
end