本教程展示了如何读和写Exif标记和注释在macOS迅速控制台应用程序使用LEADTOOLS SDK。
概述 | |
---|---|
总结 | 本教程介绍了如何使用Exif标记和注释在macOS迅速控制台应用程序。 |
完成时间 | 20分钟 |
Visual Studio项目 | 下载教程项目(6 KB) |
平台 | macOS迅速控制台应用程序 |
IDE | Xcode |
开发许可 | 下载LEADTOOLS |
试试用另一种语言 |
|
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前读和写Exif标记和注释,macOS迅速控制台教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。本教程需要引用位于下面的框架< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ \ macOS Xcode \框架
:
Leadtools.framework
Leadtools.Codecs.framework
Leadtools.Codecs.Cmp.framework
Leadtools.Codecs.Tif.framework
编辑Leadtools-Bridging-Header.h
文件添加以下进口:
#进口< Leadtools.Codecs / Leadtools.Codecs.h >
对于一个完整的列表应用程序所需的文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS引用和设置许可中会详细介绍添加引用和设置一个许可证教程。
与项目创建、添加引用,许可,可以开始编码。
使用项目导航器,打开main.swift
。添加两个新的字符串变量命名srcFile
和destFile
在调用SetLicense ()
函数。集srcFile
等于包含源Exif文件和设置文件路径destFile
等于导出EXIF文件的文件路径包含添加评论。此外,创建一个新的实例LTRasterCodecs
。
接下来,添加一个新函数命名ReadAndWriteExifComments (srcFile: srcFile destFile: destFile,编解码器:编解码器)
。以下调用这个函数LTRasterCodecs
对象实例,如下所示。
SetLicense ()
让srcFile =“< INSTALL_DIR > / LEADTOOLS22 /资源/图片/ addcommand.tif”
让destFile =“< INSTALL_DIR > /保存/ addcommand.tif”
让编解码器:LTRasterCodecs = LTRasterCodecs ()
ReadAndWriteExifComments (srcFile: srcFile destFile: destFile,编解码器:编解码器)
ReadAndWriteExifTags (srcFile: srcFile编解码器:编解码器)
将以下代码添加到ReadAndWriteExifComments ()
函数加载图像翻转,写一个标签文件说明图像翻转,然后显示到控制台创建的用户评论。
func ReadAndWriteExifComments (srcFile:字符串,destFile:字符串,编解码器:LTRasterCodecs) {
做{
让图片:LTRasterImage =试一试编解码器。加载(文件:srcFile)
/ /写注释
/ /翻转图像
让flipCmd: LTFlipCommand = LTFlipCommand(水平:真正的)
试一试flipCmd.run(图片)
/ /添加一个用户评论文件并将其保存在另一个名字
var评论:LTRasterCommentMetadata = LTRasterCommentMetadata ()
发表评论。类型= .userComment
让评论:字符串=“图像翻转”
让数据:[UTF16Char] =数组(comments.utf16)
var dataComments: [UInt8] =阵列(重复:0,数:8 + comments.count)
/ /当你需要写一个用户评论第一个8个字节必须包含“Ascii”字。
dataComments [0] = 41
dataComments [1] = 53
dataComments [2] = 43
dataComments [3] = 49
dataComments [4] = 49
为我在0 . . <评论。计数{
dataComments (8 + i) = UInt8(数据[我])
}
/ /设置数据属性在评论dataComments数组对象
comment.fromByte (&dataComments itemCount:使用UInt (dataComments.count))
/ /添加用户评论的评论收集图像
阀门image.comments ?(评论)
codecs.options.save.comments =真正的
试一试编解码器。保存(图片、文件:destFile,格式:LTRasterImageFormat。exif bitsPerPixel: 24)
/ /读取评论
评论=试一试编解码器。readComment(来自:destFile pageNumber: 1、类型:.userComment)
dataComments = comment.data.bytes
var味精:字符串=“用户评论= "
为我在0 . . < (dataComments。数- 8){
味精+ =字符串(UnicodeScalar (dataComments (i + 8)))
}
打印(味精)
}抓{
打印(error.localizedDescription)
}
}
添加一个新的函数命名ReadAndWriteExifTags (srcFile:字符串,编解码器:LTRasterCodecs)
。调用这个函数调用以下ReadAndWriteExifComments ()
功能,如前一节所示。将下面的代码添加到ReadAndWriteExifTags
从指定的文件读取标签的方法。
func ReadAndWriteExifTags (srcFile:字符串,编解码器:LTRasterCodecs) {
做{
让信息:LTCodecsImageInfo =试一试编解码器。我mageInformation(file: srcFile, totalPages:假)
让格式:LTRasterImageFormat = info.format
/ /加载标记
如果! LTRasterCodecs.tagsSupported(格式){
打印(文件格式不支持标签”)
返回
}
让标签:[LTRasterTagMetadata] = [LTRasterTagMetadata] (试一试编解码器。readTags(来自:srcFile pageNumber: 1))
让txtFileName:字符串=“/道路/ /保存/ metadata.txt”
让fileURL = URL (fileURLWithPath txtFileName):
如果文件管理。默认的.fileExists (atPath: fileURL.path) {
试一试(”“. data (使用.utf8) !写(:fileURL,选项:.atomicWrite)
}
var作家=试一试文件句柄(forWritingTo fileURL):
WriteTags(作者:作者、名称:“标签”标签:标签)
}抓{
打印(error.localizedDescription)
}
}
添加一个新的函数命名WriteTags(作者:inout文件句柄,名字:字符串,标签:[LTRasterTagMetadata])
。这个新函数将被称为内ReadAndWriteExifTags ()
函数,如上所示。将下面的代码添加到WriteTags ()
函数写读标签TXT文件。
func WriteTags(作者:inout文件句柄,名字:字符串,标签:[LTRasterTagMetadata]) {
writer.write (name.data (使用:.utf8) !)
如果标签! = nil {
为标签在标记{
writer.write (:" \国家免疫日0 x \ (String(格式:“x % 02”,tag.tagId)数据长度:\ (tag.data.count)”. data (使用:.utf8) !)
}
}其他的{
writer.write (“不支持”. data (使用:.utf8) !)
}
writer.write (”“. data (使用:.utf8) !)
}
为了方便数据类型转换添加一个扩展名为数据
。
扩展数据{
var字节(UInt8): {
返回[UInt8](自我)
}
}
通过选择清洁项目明确的任何错误产品- >清洁建立文件夹或Shift +命令+ K。
该项目通过选择运行产品- >运行或命令+ R。
如果是正确的步骤,应用程序运行时,Exif用户评论写道,读取用户评论写的,然后读取给定图像内的Exif标记并将这些标签写入外部TXT文件。
本教程展示了如何读和写Exif评论和标签。同时,我们介绍了如何使用LTRasterCodecs
和LTRasterTagMetadata
类。