我希望我上传的每一个细节..使用attachment_fu

时间:2009-12-19 10:48:11

标签: ruby-on-rails

我希望我上传的文件中的每一个细节..我正在使用attachment_fu,我想知道在拍摄图像时,ISO是什么,以及使用了哪种型号的相机,,,简而言之我想要图像的所有详细属性,是否可能?怎么样 ?

2 个答案:

答案 0 :(得分:3)

您正在查找的信息是称为“Exif”(可交换图像文件格式)的元数据,可在jpeg和tiff图像中找到。你无法在png或gif文件中找到它。

有一个Exif gem可以读取此元数据。您可以找到它(及其文档)here

棘手的部分可能是让它与attachment_fu一起工作。最简单的方法是在模型中创建一个回调:

class Foo < ActiveRecord::Base
  acts_as_attachment
  after_attachment_saved do |record|
     # do your exif stuff here using the Exif gem         
   end
 end

答案 1 :(得分:1)

  @upload.save        

    image = Magick::ImageList.new("public/"+ @upload.public_filename)        
    @upload.date_taken = DateTime.strptime(image.get_exif_by_entry('DateTime')[0][1], "%Y:%m:%d %H:%M:%S")
    @upload.model  = image.get_exif_by_entry('model')[0][1]
    @upload.camera  = image.get_exif_by_entry('make')[0][1]
    @upload.iso  =  image.get_exif_by_entry('ISOSpeedRatings')[0][1]
    @upload.update_attributes(params[:@upload])

通过rmaiggic和Exif保存任何上传后我们可以获得所有META数据..我们可以添加所有细节,然后在控制器的顶部再添加一个

要求'RMagick'

安装宝石名称EXIF :: gem install exif image.get_exif_by_entry()将提供所有可用的功能 谢谢大家帮助我 Arpit