如何使用RMagick获取图像类型?

时间:2012-03-23 13:33:52

标签: ruby image-processing rmagick

我需要找到真正的图像类型,因为很多时候它们都带有错误的扩展名。

RMagick有可能吗?怎么样?

2 个答案:

答案 0 :(得分:4)

解决方案:

image.format

答案 1 :(得分:0)

如果你想要更通用的解决方案(在Linux上):

require "open3"

def File.sys_file_cmd(path)
    if File.exist? path
      stdin,stdout,stderr = Open3.popen3(%{file --mime -b "#{path}"})

      file_err  = stderr.gets
      file_out  = stdout.gets

      if file_err
        raise Exception, "The 'file' command error: #{file_err} : with #{path}"
      end

      if file_err.nil? && (!file_out.nil? && !file_out.empty?)
        return file_out.split(";")[0].strip
      end
    end

    return nil
  end