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