#coding=utf-8 module Trustie module Utils class Image def initialize(file, bak=false) @file = file @bak = bak end def bitmap?(data) data[0,2]==66.chr + 77.chr end def gif?(data) data[0,4]==71.chr + 73.chr + 70.chr + 56.chr end def jpeg?(data) data[0,3]== 0xff.chr + 0xd8.chr + 0xff.chr end def png?(data) data[0,2]==0x89.chr + 80.chr end def image? data = '' if @file.respond_to?(:read) data = @file.read(9) @file.rewind end return false if data.size < 9 bitmap?(data) || gif?(data) || jpeg?(data) || png?(data) end def compress(size=300) backup if @bak # begin # f = Magick::ImageList.new(@file) # if f.format != 'GIF' # width = size # if f[0].columns > width # proportion = (width/f[0].columns.to_f) # height = (f[0].rows*proportion) # f.resize_to_fill!(width,height.to_i) # f.write(@file) # end # end # rescue Exception => e # Rails.logger.error "[Error] compress : ===> #{e}" # end end def backup FileUtils.cp @file, "#{@file}.bak" end end end end