Ruby on rails 我想从我上传的每一个细节。。使用附件
我要上传文件中的每一个细节。。我使用的是附件_-fu,我想知道当拍摄图像时,ISO是什么,使用的是哪种型号的相机,简言之,我想要图像的所有详细属性,有可能吗?怎么做 您正在查找的信息是称为“Exif”(可交换图像文件格式)的元数据,可在jpeg和tiff图像中找到。在png或gif文件中找不到此选项 有一个Exif gem读取此元数据。您可以找到它(及其文档) 棘手的部分可能是让它与附件一起工作。最简单的方法是在模型中创建回调:Ruby on rails 我想从我上传的每一个细节。。使用附件,ruby-on-rails,Ruby On Rails,我要上传文件中的每一个细节。。我使用的是附件_-fu,我想知道当拍摄图像时,ISO是什么,使用的是哪种型号的相机,简言之,我想要图像的所有详细属性,有可能吗?怎么做 您正在查找的信息是称为“Exif”(可交换图像文件格式)的元数据,可在jpeg和tiff图像中找到。在png或gif文件中找不到此选项 有一个Exif gem读取此元数据。您可以找到它(及其文档) 棘手的部分可能是让它与附件一起工作。最简单的方法是在模型中创建回调: class Foo < ActiveRecord::Base
class Foo < ActiveRecord::Base
acts_as_attachment
after_attachment_saved do |record|
# do your exif stuff here using the Exif gem
end
end
class Foo
通过rmaiggic和Exif保存任何上传后,我们可以获得所有元数据。。我们可以在控制器顶部添加所有必须写入的细节、和
需要“RMagick”
安装gem名称EXIF::gem安装EXIF
get\u exif\u by\u entry()将提供所有可用函数
谢谢大家帮助我
Arpit谢谢你的朋友,你的答案对我很有用,我很晚才得到,但你的答案是perfact。我们也可以使用Rmagick来使用EXIF。
@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])