将 IPTC 数据写入文件

2023-12-04

我需要获取一个现有的 jpg 文件并修改其 IPTC 条目中的标题、描述和关键字。这里有几个与此相关的主题,但所有主题要么没有答案,要么只有部分答案。我已经知道如何阅读 IPTC 信息,但需要编辑它们。有人可以阐明这个经过大量研究且鲜为人知的主题吗?

我所拥有的是:

NSString: title
NSString: description
NSArray: keywords
NSString: path to the file

我想使用现有 IPTC 数据获取现有图像,并用这些数据替换现有条目,但保留所有其他 IPTC 条目,例如位置、日期等。到目前为止我所知道的是我需要使用 CGImageDestination。

Thanks


您应该首先从文件中读取元数据:

CGImageSourceRef source = CGImageSourceCreateWithURL((__bridge CFURLRef)url, NULL);
NSDictionary *props = (__bridge_transfer NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source, 0, NULL);

在上面的代码中,url是图像文件的 URL。props将在目标 URL 中包含图像的所有元数据。

然后,将该数据复制到新的可变的空数据源:

//new empty data to write the final image data to
NSMutableData *resultData = [NSMutableData data];
CGImageDestinationRef imgDest = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)(resultData), imageType, 1, NULL);

最后,假设您已经修改了新的元数据NSDictionary实例(称为modifiedMetadata在此示例中):

//copy image data
CGImageDestinationAddImageFromSource(imgDest, source, 0, (__bridge CFDictionaryRef)(modifiedMetadata));
BOOL success = CGImageDestinationFinalize(imgDest);

这会将元数据写入目标图像。至少就我而言,它工作得很好。

要将图像数据保存到实际文件中,您可以定期写入数据,例如:

[resultData writeToFile:fileName atomically:YES];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 IPTC 数据写入文件 的相关文章

  • UITableViewCell 内的 UIPageViewController

    嘿我想问如何在 UITableViewCell 内实现 UIPageViewController 我一直在阅读周围的内容 但到目前为止似乎对任何尝试的人都不起作用 我希望得到一些提示 不需要完整的答案 谢谢 目前还不清楚你到底想做什么 但让
  • 从 iPhone 设备查找当前国家/地区

    我必须在 iPhone 设置中获取当前国家 地区 谁能告诉我如何在 iPhone 应用程序中获取当前国家 地区 我必须使用当前国家 地区来解析需要传递当前国家 地区的 RSS 提要 请帮我找到那个国家 提前致谢 要查找用户选择的语言所在的国
  • UITableView 无法一直滚动到底部[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只是好奇 我做了一些UITable
  • UIView 和 UITableView 中的 UITapGestureRecognizer 冲突

    我有一个UIView我在其中添加了一个UITapGestureRecognizer 在该视图中 我还有一个子视图 其中基本上是某种UITableView 问题是为什么不UITableView识别连续点击 而是始终转到点击手势识别器的处理程序
  • 方法调用中的插入符[重复]

    这个问题在这里已经有答案了 我正在阅读本教程 并遇到了这行代码 这让我感到困惑 localSearch startWithCompletionHandler MKLocalSearchResponse response NSError er
  • 在后台每 X 分钟执行一次函数不起作用

    我使用此代码每 X 分钟执行一次函数 void executeEveryOneMinute self myFunction dispatch after dispatch time DISPATCH TIME NOW int64 t 60
  • 通过应用程序组在应用程序之间通信和保存数据

    iOS 8 昨天发布了一个有关应用程序组的新 API 以前在应用程序之间共享数据和通信有点混乱 我相信这正是应用程序组旨在纠正的问题 在我的应用程序中 我启用了应用程序组并添加了一个新组 但我找不到任何有关如何使用它的文档 文档和 API
  • 如何从 UILabel 创建图像?

    我目前正在 iPhone 上开发一个简单的类似 Photoshop 的应用程序 当我想要展平图层时 标签位于良好的位置 但字体大小不佳 这是我要展平的代码 UIGraphicsBeginImageContext CGSizeMake wid
  • [[NSMutableDictionary alloc] initWithObjects:...] 和 [NSMutableDictionary DictionaryWithObjects:...] 之间的区别?

    仍在学习 Objective C iPhone SDK 我想我知道为什么这不起作用 但我只是想确认一下 In awakeFromNib 如果我使用 NSMutableDictionary alloc initWithObjects 它实际上
  • 如何用Block简化回调逻辑?

    假设我需要与一个提供协议的类进行通信 并在操作完成时调用委托方法 如下所示 protocol SomeObjectDelegate required void stuffDone id anObject void stuffFailed e
  • Xcode 4 调试器代码完成

    首先 很高兴他们尝试在 Xcode 4 中的 gdb 命令提示符上完成代码 但在当前状态下 它使得使用命令提示符来调查目标 c 对象几乎不可能 当我打字时 它自动将单词补全为我不想要的内容 并且如果不手动选择文本并将其删除 然后重新开始 则
  • 如何将 UIImageView 裁剪为自定义形状

    用户是否可以在该位周围画一条虚线 圆圈 UIImageView他们希望裁剪到 然后为UIImageView调整大小到这些点 这有点像 Photoshop 中的套索 选取框效果 更新 从 iOS 8 x 开始 UIImageView 提供了m
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • NSDateFormatter:根据 currentLocale 的日期,不包含年份

    这不会太难吧 我想显示不带年份的日期 例如 8 月 2 日 美国 或 02 08 德国 它也必须适用于许多其他语言环境 到目前为止 我唯一的想法是对年份进行正常格式 然后从生成的字符串中删除年份部分 我认为你需要看一下 NSString d
  • 使用 Cocoa/OSX 合并/堆叠两个图像

    我有一个 CGImageRef 我们称之为原始图像 和一个透明 png 水印 我正在尝试编写一种方法将水印放置在原始内容之上 并返回 CGImageRef 在 iOS 中 我会使用 UIKit 将它们绘制到上下文中 但这在 OSX 中似乎不
  • let/var 如何解决可变性? [复制]

    这个问题在这里已经有答案了 我没有任何问题 我只是想对有关可变性的问题进行一些澄清 在 Objective C 中我们会使用例如NSMutableArray得到一个可变数组和NSArray得到一个不可变的 我对两者的内部运作了解不多 但据我
  • 如何为图层阴影不透明度设置动画?

    我有一个视图 我已将 LayerOpacity 设置为 1 theView layer shadowOpacity 1 0 当视图位于屏幕下方时 这看起来很好 当我将此视图向上移动以与另一个有阴影的视图齐平时 它们看起来不太好 有没有办法让
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • 带有文本字段的 iPhone AlertView

    我有一个UIAlertView with a UITextField在里面 我想输入mail id并提交于UIAlertView s ok按钮 但是UITextField in the UIAlertView没有回复 请帮助我 thankz
  • 对象指针值作为字典的键

    我想使用对象的引用值作为字典的键 而不是对象值的副本 因此 我本质上想在字典中存储与另一个对象的特定实例关联的对象 并稍后检索该值 这可能吗 是不是完全违背了NSDictionary的理念 我可以看出我可能以错误的方式处理这个问题 因为字典

随机推荐

  • 使用 ggplot2 绘制 xts 对象

    我想使用 ggplot2 绘制 xts 对象 但出现错误 这是我正在做的事情 dates lt c 2014 10 01 2014 11 01 2014 12 01 2015 01 01 2015 02 01 value lt as num
  • Android:按键盘上的“完成”按钮

    使用 appium 实现 Android 应用自动化 无法单击手机键盘上显示的 完成 按钮 有人可以帮助我们有什么方法可以使用 ADB Shell 命令单击 Android 手机完成按钮吗 在 Android 中 您无法直接单击键盘按键 除
  • C++ 从二进制文件中写入和读取双精度数

    我想对占用过多 RAM 的程序执行磁盘 I O 操作 我使用双精度矩阵 并认为将它们作为字节写入磁盘是最快的方法 我需要保留双精度 如何做到便携呢 我找到了这段代码 here 但作者说它不可移植 include
  • 将项目导入 Eclipse

    我有一个简单的问题如何将整个项目源导入 Eclipse 以便我可以轻松浏览它 具体来说 我已经下载了Maven源代码http maven apache org download html我只想像 Eclipse 中的其他项目一样查看它 我尝
  • JavaScript 中 [[prototype]] 属性的双括号有何意义?

    我知道每个 JavaScript 对象都有一个名为的内部属性 Prototype 一些实现允许通过名为的属性访问它 proto 而其他则不然 有什么特殊意义吗brackets该物业周围 它是一个 内部财产 对象的 来自ECMAScript
  • 双向链表——垃圾回收

    我创建了一个双向链表 我的列表仅包含 2 个元素 假设node1 and node2 并且我想删除head指向第一个节点的指针 node1 在列表中 因为在 Cpython 中 垃圾收集的主要算法是引用计数 现在我的问题是 示例1 如果我设
  • 如何定义自定义聚合函数来对向量列求和?

    我有一个两列的数据框 ID类型的Int and Vec类型的Vector org apache spark mllib linalg Vector DataFrame 如下所示 ID Vec 1 0 0 5 1 4 0 1 1 1 2 1
  • CSS3 替代 jQuery.fadeIn 和 fadeOut

    我编写了少量代码来尝试复制 jQuery fadeIn and fadeOut 使用 CSS 过渡的函数在触摸设备上看起来更好 理想情况下 我希望避免使用库 以便我可以准确地编写我想要的内容 并将其作为学习练习 fadeOut效果很好 的想
  • 是否有相当于“shopt -s nullglob”的 ZSH?

    我目前正在编写一个脚本 该脚本可以从我的桌面上删除所有 PNG 文件 我想创建一个文件路径数组 然后使用rm对每一个都发出命令 这是相关的代码 usr bin env bash shopt s nullglob files HOME Des
  • 搜索长字符串的 SQL 性能

    我需要将用户代理字符串存储在数据库中 以跟踪和比较不同浏览器之间的客户行为和销售业绩 一个非常简单的用户代理字符串大约有 100 个字符长 决定使用一个varchar 1024 用于在数据库中保存用户代理数据 我知道这有点矫枉过正 但这就是
  • 如何使用存储过程在 SQL Server 中透视表?

    原始输出 期望的输出 检查下面的示例供您参考 或者发布您当前的输出和所需的输出 SELECT INTO tblStock FROM SELECT A PartCode 10 StockQty WHs A Location UNION ALL
  • 使用vbs打开excel工作簿,运行宏并保存工作簿

    我有一个宏 需要每 5 分钟运行一次 我有一个vbs安排宏的文件 该宏正在检查某个文件夹中的新文件 将其信息写入表中 然后将文件移动到存档中 该表与宏位于同一个 Excel 文件中 它运行宏正常 但最后 它询问我是否要保存文件 我需要它来自
  • 使用多列的列表理解

    我有一个 pandas 数据框 其中有一列用于实际值和预测值 我想使用列表理解创建一个新列 当实际值 预测时 该列 1 否则为 0 我知道如何使用 np where 来做到这一点 但我很好奇如何使用列表理解来做到这一点 这可以使用np wh
  • 我可以在保存之前检查下载的图像是否损坏吗?

    在将下载的图像保存到我的文档目录之前 我可以检查它是否已损坏吗 如果是的话请告诉我怎么做 谢谢 UIImage im UIImage alloc initWithData YourNSData UIImageView imview test
  • 在 C# 中,有没有一种方法可以使用反射仅检索内置数据类型属性

    使用反射我想只检索内置数据类型来自 C 对象的属性 有没有比使用一堆更好的方法来做到这一点 或 在一个Where指定我感兴趣的类型的方法 Type sourceType typeof TSource var props sourceType
  • PDFbox 说 PDDocument 已关闭,但未关闭

    我正在尝试使用 PDFbox 填充重复的表单 我正在使用 TreeMap 并用单独的记录填充表单 pdf 表单的格式是这样的 第一页列出六条记录 第二页插入一个静态页面 对于大于 6 个记录的 TreeMap 重复该过程 我得到的错误特定于
  • 在反引号中使用管道

    我尝试使用管道运行命令但收到错误 echo abc echo grep a grep b grep No such file or directory grep grep No such file or directory grep b N
  • 从sqlite数据库读取信息,语法?如何在 html5 webapp 中使用它?

    我正在构建一个 Web 应用程序 并且刚刚开始使用 SQLite 我已经能够创建我的表单 打开我创建的数据库 创建表和我需要的字段 然后将数据输入到字段中 现在 我尝试使用 SELECT 语句读回数据 将其显示在屏幕上并作为列列表 我只是不
  • 我的 Android 应用程序在调试中显示谷歌地图,但在发布到市场时不显示

    我创建了一个使用 Google 地图和 Google Playstore 的应用程序 并使用 Eclipse 和 Android SDK 进行调试 地图显示在我正在运行的设备上 但发 布时它不会显示在应用程序上 只有一个大的灰色屏幕 And
  • 将 IPTC 数据写入文件

    我需要获取一个现有的 jpg 文件并修改其 IPTC 条目中的标题 描述和关键字 这里有几个与此相关的主题 但所有主题要么没有答案 要么只有部分答案 我已经知道如何阅读 IPTC 信息 但需要编辑它们 有人可以阐明这个经过大量研究且鲜为人知