如何在不使用 UIImage 的情况下处理 Swift 中的图像?
How do I process an image in Swift without using UIImage?
我正在构建一个 Kitura Web 应用程序,我需要能够处理用户上传的图像。
我有一个 Foundation 的 Data
实例,我想在不使用任何 Cocoa libraries/frameworks(Foundation 除外)的情况下执行以下操作:
- 验证
Data
是否是有效的图像文件
- 将图像转换为
.png
- 检查图像的分辨率
- 将图像文件调整为特定宽度,高度遵循比例
- 保存到本地文件系统
我该怎么做?我可以使用第三方库/框架,只要它们适用于 Linux.
您应该使用 SwiftGD - libgd 的包装器。它支持您需要的所有操作:
https://github.com/twostraws/SwiftGD
The only thing it doesn't support directly is reading an image from an in-memory Data instance. You'll need to write it to a temporary file and instantiate from there.
我不能保证 Swift 包装器本身,它似乎是全新的,但我在其他平台上使用过 libgd,我没有遇到任何问题。
我遇到的另一个有趣的是:https://github.com/BradLarson/GPUImage2
我使用了原始的 GPUImage,它很棒。这个新版本支持 Linux,但在那个平台上听起来还不是很完善。它还可能需要一个 GPU,这肯定是一个问题,具体取决于您的最终目标。
在 short-term 中,SwiftGD 似乎是您最好的选择。
我正在构建一个 Kitura Web 应用程序,我需要能够处理用户上传的图像。
我有一个 Foundation 的 Data
实例,我想在不使用任何 Cocoa libraries/frameworks(Foundation 除外)的情况下执行以下操作:
- 验证
Data
是否是有效的图像文件 - 将图像转换为
.png
- 检查图像的分辨率
- 将图像文件调整为特定宽度,高度遵循比例
- 保存到本地文件系统
我该怎么做?我可以使用第三方库/框架,只要它们适用于 Linux.
您应该使用 SwiftGD - libgd 的包装器。它支持您需要的所有操作: https://github.com/twostraws/SwiftGD
The only thing it doesn't support directly is reading an image from an in-memory Data instance. You'll need to write it to a temporary file and instantiate from there.
我不能保证 Swift 包装器本身,它似乎是全新的,但我在其他平台上使用过 libgd,我没有遇到任何问题。
我遇到的另一个有趣的是:https://github.com/BradLarson/GPUImage2
我使用了原始的 GPUImage,它很棒。这个新版本支持 Linux,但在那个平台上听起来还不是很完善。它还可能需要一个 GPU,这肯定是一个问题,具体取决于您的最终目标。
在 short-term 中,SwiftGD 似乎是您最好的选择。