如何让 ImageMagick 库与 Swift 4/iOS 11 一起使用?
Posted
技术标签:
【中文标题】如何让 ImageMagick 库与 Swift 4/iOS 11 一起使用?【英文标题】:How to get the ImageMagick library working with Swift 4/iOS 11? 【发布时间】:2019-01-02 21:03:52 【问题描述】:我正在尝试让 ImageMagick 在我的 ios 项目中工作。不幸的是,到目前为止我所尝试的一切都没有奏效。
Cocoapods
最明显的方法是使用cocoapod。不幸的是,在安装 cocoapod 之后,似乎没有任何东西可以快速导入。也许我错过了一些明显的东西,如果有人有任何想法会很棒。不幸的是,就具体示例而言,文档缺乏。
静态库 - 方法 #1
official ImageMagick docs 提供了一些指令来编译最新版本的 ImageMagick 并在您的 Xcode 项目中包含一个静态库。不幸的是,说明的第一步需要运行我找不到的 bash 脚本 imagemagick_compile.sh
。再一次,我可能会遗漏一些明显的东西。
静态库 - 方法 #2
经过一些额外的搜索,我找到了 ImageMagick 文档中提到的 ~Claudio 人,他是 iOS 版本 ImageMagick 的维护者。他有一个由 ImageMagick 提供的repo with similar instructions,但这个 repo 包含一个 bash 脚本来编译和生成 ImageMagick 的静态库。我尝试直接运行脚本./all.sh 6.8.8-9
,但很快意识到我没有按照他的说明设置build
目录,并且我无法正确安装libpng
。
静态库 - 方法 #3
same repo 包含编译和生成静态库的说明,还包括一个旧的示例 iOS 项目,其中包含一个用于旧版 ImageMagick 的静态库。除了 ImageMagick 库有一个类 Timer
与 Swift4/iOS 提供的 Timer
类冲突之外,这几乎可以工作,所以我无法使用这个 ImageMagick 静态库编译我的项目。
关于 SO 的 ImageMagick iOS 问题
Stack Overflow 上还有一些其他问题涉及在 iOS 上运行 ImageMagick,所以我知道其他人已经这样做了,但最近没有。如果有人有任何想法将不胜感激,谢谢!
关于如何在 iOS 上使用 ImageMagick 的未回答问题:ImageMagick iOS image 可能有用的评论,其中包含我在上面提供的一些相同链接。 有人已经在使用 iOS 版 ImageMagick,但没有详细说明它是如何实现的:ImageMagick circular dstortion on iOS 已经在其应用程序中使用 ImageMagick 的人提出的未回答问题:Ios - ImageMagick - No Image Created after Distortion 与使用 cocoapod 版本的警告相关的最新问题:iOS: ImageMagick compiler warnings in Xcode其他问题:https://***.com/search?q=imagemagick+ios 不幸的是,我没有找到任何有用的问题。
【问题讨论】:
【参考方案1】:要将 ImageMagick 集成到 iOS 中,您需要执行以下操作:
在此处安装可用的库https://www.imagemagick.org/download/iOS/ 您将需要一个 Swift-Objective-C 桥接头,其中包括:
#import "ImageMagick.h"
#import "MagickWand.h"
您需要修改任何将 Timer 引用到 Foundation.Timer 的函数,这将解决与 ImageMagick 库的任何冲突
您需要在您的目标 > 构建阶段 > 将二进制文件与库链接 > “libxml2.tbd”下添加。
希望对你有帮助
【讨论】:
以上是关于如何让 ImageMagick 库与 Swift 4/iOS 11 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章