首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rmagick不覆盖EXIF属性。

rmagick不覆盖EXIF属性。
EN

Stack Overflow用户
提问于 2014-01-09 20:24:35
回答 1查看 706关注 0票数 1

我试图使用rmagick 2.13.1和ruby 1.9.3p194重置图像中的EXIF方向字段,但它似乎没有保存。

代码语言:javascript
复制
img = ::Magick::Image::read(local_source_path).first
img.get_exif_by_entry()
=> [["ColorSpace", "1"],
 ["ExifImageLength", "2448"],
 ["ExifImageWidth", "3264"],
 ["ExifOffset", "38"],
 ["Orientation", "6"]]

方向也可以通过这些属性来获得。

代码语言:javascript
复制
img.properties

输出

代码语言:javascript
复制
{"date:create"=>"2014-01-08T17:26:10-08:00",
 "date:modify"=>"2014-01-08T17:26:05-08:00",
 "exif:ColorSpace"=>"1",
 "exif:ExifImageLength"=>"2448",
 "exif:ExifImageWidth"=>"3264",
 "exif:ExifOffset"=>"38",
 "exif:Orientation"=>"6",
 "jpeg:colorspace"=>"2",
 "jpeg:sampling-factor"=>"2x2,1x1,1x1"}

我尝试将定向属性设置为nil & save:

代码语言:javascript
复制
img['exif:Orientation'] = nil

现在,

代码语言:javascript
复制
img.properties
=> {"date:create"=>"2014-01-08T17:26:10-08:00",
 "date:modify"=>"2014-01-08T17:26:05-08:00",
 "exif:ColorSpace"=>"1",
 "exif:ExifImageLength"=>"2448",
 "exif:ExifImageWidth"=>"3264",
 "exif:ExifOffset"=>"38",
 "jpeg:colorspace"=>"2",
 "jpeg:sampling-factor"=>"2x2,1x1,1x1"}

看上去是对的。

代码语言:javascript
复制
img.write(local_dest_path)

但是当我使用get_exif_by_entry

代码语言:javascript
复制
img.get_exif_by_entry('Orientation')[0][1]

我仍然得到6,而不是nil

当我读取修改过的local_dest_path的书面文件时,我仍然得到"6“。

是否有我缺少的set_exif_by_entry函数?有什么想法吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-10 18:42:44

无法设置为nil,但在编写过程中我能够将其设置为1

代码语言:javascript
复制
img.write('local_dest_path') { self.orientation = ::Magick::TopLeftOrientation }

常数UndefinedOrientation也不起作用。OrientationType中列出了其他可用的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21030378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档