Как открыть файл .jpg с Minimagick? - PullRequest
0 голосов
/ 11 февраля 2020

У меня ошибка с MiniMagick во время моей "after_upload" в моем image_concern.rb

Мой код делает изображение постера преобразованным в jpg. Затем он возьмет файл, который находится в / tmp, и изменит этот файл, чтобы он также был меньше, чтобы отобразить его на потом. Но у меня есть ошибка на этом шаге:

`mogrify -resize 360x200^ -gravity Center -crop 360x200+0+0 /tmp/RackMultipart20200211-5215-1lxtqf1.png` failed with error: mogrify: unable to open image '/tmp/RackMultipart20200211-5215-1lxtqf1.png':

Он пытается открыть этот файл в .png, но он находится в jpg в моем tmp /. Как сказать, что он открывает этот файл, но не в png, а в jpg. Спасибо Это мой код after_upload:

def #{field}_after_upload
          path = #{field}_path
          options = #{options}
          if #{field}_file.respond_to? :path
            dir = File.dirname(path)
            FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
            image = MiniMagick::Image.new(#{field}_file.path) do |b|
              if options[:resize].ends_with?('!')
                b.resize '#{options[:resize].delete('!')}^'
                b.gravity 'Center'
                b.crop '#{options[:resize].delete('!')}+0+0'
              else
                b.resize '#{options[:resize].delete('!')}\>'
              end
            end
            image.format 'jpg'
            image.write path
            if options[:formats]
              options[:formats].each do |k, v|
                image = MiniMagick::Image.new(#{field}_file.path) do |b|
                  b.resize "\#{v}^"
                  b.gravity 'Center'
                  b.crop "\#{v}+0+0"
                end
                image.format 'jpg'
                image.write path.gsub('.jpg', "_\#{k}.jpg")
              end
            end
          end
        end

Ошибка начинается с "если параметры [: форматы]"

Спасибо!

...