module CarrierWave::OptimzeImage
Public Instance Methods
check_file_format?()
click to toggle source
# File lib/carrierwave-optimize-image.rb, line 16 def check_file_format? if file.content_type.include?("gif") || file.content_type.include?("video") false else true end end
create_temp_image()
click to toggle source
# File lib/carrierwave-optimize-image.rb, line 28 def create_temp_image tempfile = Tempfile.new(["#{file.filename}_#{Time.current.to_i}", File.extname(file.path)]) tempfile.binmode tempfile.write(to_blob) ffmpeg(tempfile) tempfile.unlink end
ffmpeg(tempfile)
click to toggle source
# File lib/carrierwave-optimize-image.rb, line 40 def ffmpeg(tempfile) system(" ffmpeg -y -i #{tempfile.path} -q:v #{@level} #{current_path}") end
lossless_ffmpeg_compression()
click to toggle source
# File lib/carrierwave-optimize-image.rb, line 24 def lossless_ffmpeg_compression create_temp_image end
optimize(options = {})
click to toggle source
# File lib/carrierwave-optimize-image.rb, line 3 def optimize(options = {}) @level = options[:level].present? ? options[:level].to_i : 30 begin if check_file_format? lossless_ffmpeg_compression end rescue Exception => e puts e end end
to_blob()
click to toggle source
# File lib/carrierwave-optimize-image.rb, line 36 def to_blob File.binread(file.path) end