如何在不使用UIImage的情况下处理Swift中的图像?

时间:2017-01-27 08:44:37

标签: swift image io filesystems kitura

我正在构建一个Kitura Web应用程序,我需要能够处理用户上传的图像。

我有一个基金会Data的实例,我想在不使用任何Cocoa库/框架(基金会除外)的情况下执行以下操作:

  • 验证Data是否为有效的图片文件
  • 将图片转换为.png
  • 检查图像的分辨率
  • 将图像文件的大小调整为特定宽度,高度按比例
  • 保存到本地文件系统

我该怎么做?我可以使用第三方库/框架,只要它们可以在Linux上运行。

1 个答案:

答案 0 :(得分:8)

你应该使用SwiftGD - libgd的包装器。它支持您需要的所有操作: https://github.com/twostraws/SwiftGD

  

它唯一不直接支持的是从内存数据实例中读取图像。您需要将其写入临时文件并从那里实例化。

我不能保证Swift包装器本身,这似乎是全新的,但我在其他平台上使用了libgd,我没有遇到任何问题。

我遇到的另一个有趣的问题是:https://github.com/BradLarson/GPUImage2

我使用了原始的GPUImage,非常棒。这个新版本支持Linux,但它听起来并不像它在该平台上非常精致。它也可能需要GPU,这肯定是一个问题,取决于你的最终目标。

在短期内,SwiftGD似乎是你最好的选择。