我需要在iOS应用中将自定义XMP文件嵌入到PNG中。 到目前为止,我能够做的是编译生成Xcode项目的Adobe XMP工具包,然后我正确地编译了项目。
从那里我不知道如何在我的Xcode项目中使用该库以及如何使用它。我在互联网上找到的信息很少。
任何希望提供帮助的人都会这样做吗?
答案 0 :(得分:3)
如果您下载了Adobe XMP Toolkit SDK,则可以在" ModifyingXMP.cpp"中找到编写XMP元数据的示例。以及在" ReadingXMP.cpp"中读取已经写入XMP的文件的示例;文件。请注意,我使用的是XMP-Toolkit-SDK-CC201607版本。
您需要稍后在iOS项目中包含静态文件和头文件。请仔细阅读有关如何生成它们的说明,特别是您需要的拱形类型。在我的情况下,我分别生成[arm64,armv7,armv7s]和[x86_64],然后将它们组合在一起。
尝试并修改"修改XMP.cpp"根据你的需要。将这些源代码作为Objective-C ++(扩展名为.mm)包含在iOS应用程序项目中。不要忘记包含头文件,libXMPCoreStatic.a文件,libXMPFilesStatic.a文件,制作桥接头,并配置项目以导入外部静态库。如果您不了解我在说什么,请查看以下链接:
https://forums.adobe.com/thread/1360320
How can I use an .a static library in swift?
我在XmpWriter.h上的实现:
#import <Foundation/Foundation.h>
@interface XmpWriter : NSObject
+(BOOL) writeXmp:(const char *) imageUrl Param1:(const char *) Param1 Param2:(float) param2 Param3:(float) Param3;
+(BOOL) readXmp:(const char *) imageUrl;
@end
在我的XmpWriter.mm文件中,我修改了createXMPFromRDF()
以接受我的参数,如:
SXMPMeta createXMPFromRDF(const char *Param1, float Param2, float Param3)
我希望你能从这里接近你想要达到的目标。
答案 1 :(得分:2)
XMP specification PDF中显示的iOS版本支持显示这是2016年7月添加的,但这表示支持Xcode 7.2.1,因此该库可能无法使用Xcode 9,因为它不清楚它最近是否已经更新。
至于使用您生成的XMP示例项目的更具体方法,从上面链接的文档中,您应该能够找到ReadingXMP
演示,该演示应该是特定于平台的(在Xcode中对您有帮助) )。该文档声明此演示将
演示XMPFiles和XMPCore组件的基本用法,从文件获取只读XMP并通过XMP对象检查它。
您需要在<xmpsdk>/samples/source
的命令行中编译和构建它们,并将其写入<xmpsdk>/samples/target/
。我认为 filename
指定的是SDK生成的Xcode项目,但是您已经注意到那里没有太多文档。
老实说,我自己并没有使用它,但我希望这会有所帮助:)。
答案 2 :(得分:0)
我面临着需要读写XMP数据的类似问题,最终在Adobe的XMP ToolKit上创建了一个Objective-C包装器,以替代更自然的API。
我希望它对某人有用,您可以在Github和CocoaPods上找到它: https://github.com/IHEARTCOOKIES/XMPFramework