gpt4 book ai didi

ruby-on-rails - 如何从回形针附加的图像中读取 exif 数据?

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:25 28 4
gpt4 key购买 nike

我正在尝试使用 exifr gem 从我用回形针上传的 jpeg 图像中读取 exif 数据,并将焦距等保存到属性中,但我似乎做不到。我是 Rails 初学者,如果有人能提供帮助,我将不胜感激。

我的 photo.rb 模型:

class Photo < ActiveRecord::Base

attr_accessible :date, :exif, :name, :photo
has_attached_file :photo, :styles => { :small => "200x200#" , :medium => "1280x720#" },
:url => "/assets/photos/:id/:style/:basename.:extension",
:path => ":rails_root/public/assets/photos/:id/:style/:basename.:extension"

after_photo_post_process :load_exif

validates_attachment_presence :photo
validates_attachment_content_type :photo, :content_type => ['image/jpeg']



def load_exif
exif = EXIFR::JPEG.new(photo.queued_for_write[:original])
return if exif.nil? or not exif.exif?
self.exposure = exif.exposure_time.to_s
self.f_stop = exif.f_number.to_f.to_s
self.focal_length = exif.focal_length.to_f.round.to_s
self.iso = exif.iso_speed_ratings
self.date = exif.date_time.to_date
rescue
false
end
end

我的表单(使用 SimpleForm):

<%= simple_form_for @photo, :html => {:multipart => true}  do |f| %>
<%= f.error_notification %>

<div class="form-inputs">
<%= f.input :name %>
<%= f.file_field :photo, :label => 'Attach photo' %>
</div>

<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>

show.html.erb 包含我要显示的字段:

<p>
<b>Name:</b>
<%= @photo.name %>
</p>

<p>
<b>Date:</b>
<%= @photo.date %>
</p>

<p>
<b>Exposure:</b>
<%= @photo.exposure %>
</p>

我可能遗漏了一些愚蠢的东西,如果是这样,我深表歉意。

最佳答案

尝试将 load_exif 方法中的第一行更改为:

exif = EXIFR::JPEG.new(photo.queued_for_write[:original].path)

最后没有 .path,我不相信它会返回文件路径。

关于ruby-on-rails - 如何从回形针附加的图像中读取 exif 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15627402/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com