Написание скрипта для сжатия всех изображений размером менее 500 кб в скрипте Rails

#ruby-on-rails #image-compression

Вопрос:

Я пытаюсь написать скрипт на ruby для сжатия всех изображений размером менее 500 кб. Я нашел способ сделать это в терминале с помощью mogrify -define Jpeg:extent=500kb *.jpg , но я не нашел ничего, что говорило бы о сжатии всех изображений как минимум до 500 КБ внутри сценария ruby. Я также пытался использовать

 require 'fastimage'
#test key
Tinify.key = "myKey"
 

i = 0
Dir.glob("app/assets/images/*.{jpg,png}") do |item|
  #only do 50 images at a time
  break if i == 10
 
  #ignorre directories and original files
  next if item == '.' or item == '..' or item.include? "original"
 
  #ignore iamges less than 50KB
  filesize = (File.size(item) * 0.001).floor
  next if filesize < 50
 
  #ignore images that are smaller thatn 100KB and over 600px large
  size = (FastImage.size(item).inject(: ))
  next if size >= 600 and filesize < 100
  i = i   1
 
  source = Tinify.from_file(item)
  source.to_file(item)
 
  new_filesize = (File.size(item) * 0.001).floor
 
  puts "Converted: #{item}"
  puts "Original: #{filesize} Optimized #{new_filesize}"
end
puts "All done!"
 

Я надеялся, что кто-нибудь сможет помочь мне отладить это, чтобы на самом деле сжимать изображения, а не просто отслеживать их. Заранее спасибо