🎯 项目简介
Harbeth是一个基于Metal的高性能图像处理库,为iOS和macOS开发者提供了一套简洁、高效的图像滤镜解决方案。它不仅支持传统的图像滤镜效果,还能处理HDR图像,让你的应用在图像处理方面如虎添翼。
| 用故障艺术美学建立动态RGB通道分离 | 实时检测边缘并添加霓虹灯发光效果 |
|---|---|
![]() |
![]() |
✨ 核心功能与优势
1. 高性能Metal渲染
- 利用Metal GPU加速,处理速度比CPU实现快10-50倍
- 支持命令缓冲区池管理,优化GPU资源使用
- 双缓冲技术,进一步提升处理性能
2. 丰富的滤镜效果
- 基础滤镜:亮度、对比度、饱和度、色相调整
- 高级效果:高斯模糊、锐化、边缘检测、色调映射
- 创意滤镜:复古、赛博朋克、电影效果、HDR增强
- 自定义滤镜:支持自定义Metal着色器
超过 200+ 内置滤镜,组织成直观的类别,涵盖从基本颜色调整到高级艺术效果的各种功能
3. HDR图像处理
- 支持rgba16Float和rgba32Float格式的HDR纹理
- 内置HDR到SDR的色调映射算法
- 保留HDR图像的细节和动态范围
4. 易用的API设计
- 链式调用风格,代码简洁易读
- 统一的输入输出接口,支持多种图像类型
- 异步处理支持,避免主线程阻塞
5. 跨平台支持
- 同时支持iOS、macOS和tvOS
- 适配不同设备的Metal性能特性
- 自动处理设备内存限制
🚀 快速开始
安装方式
swift
// Swift Package Manager
.package(url: "https://github.com/yangKJ/Harbeth.git", from: "0.0.1")
// CocoaPods
pod 'Harbeth'
基础使用示例
swift
import Harbeth
// 加载图像
let image = UIImage(named: "example")!
// 创建滤镜
let filter = C7Brightness(brightness: 0.2)
// 应用滤镜
let result = try? HarbethIO(element: image, filter: filter).output() as? UIImage
// 显示结果
imageView.image = result
链式滤镜示例
swift
// 组合多个滤镜
let filters: [C7FilterProtocol] = [
C7Brightness(brightness: 0.1),
C7Contrast(contrast: 1.2),
C7Saturation(saturation: 1.3),
C7GaussianBlur(radius: 2.0)
]
// 应用滤镜链
let result = try? HarbethIO(element: image, filters: filters).output() as? UIImage
🎨 高级特性
1. 自定义Metal着色器
swift
// 创建自定义滤镜
struct CustomFilter: C7FilterProtocol {
var modifier: ModifierEnum {
return .compute(kernel: "customKernel")
}
var factors: [Float] = [0.5, 0.5, 0.5]
}
// 应用自定义滤镜
let customFilter = CustomFilter()
let result = try? HarbethIO(element: image, filter: customFilter).output() as? UIImage
2. HDR图像处理
swift
// 加载HDR图像
let hdrImage = UIImage(named: "hdr_example")!
// 应用HDR到SDR转换
let hdrFilter = HDRToSDR()
let result = try? HarbethIO(element: hdrImage, filter: hdrFilter).output() as? UIImage
3. 实时处理
swift
// 实时处理相机捕获的图像
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
// 异步处理
HarbethIO(element: sampleBuffer, filter: C7Vibrance(vibrance: 0.5)).transmitOutput { result in
switch result {
case .success(let processedBuffer):
// 处理成功,显示结果
DispatchQueue.main.async {
self.previewLayer.enqueue(processedBuffer)
}
case .failure(let error):
print("处理失败: \(error)")
}
}
}
⚡ 性能优势
Harbeth在性能方面的表现令人印象深刻:
- 处理速度:比Core Image快3-5倍,比CPU处理快10-50倍
- 内存使用:智能纹理池管理,减少内存分配
- 电池消耗:优化的GPU使用,降低能耗
- 大图像处理:支持处理高分辨率图像和视频帧
📱 适用场景
Harbeth适用于各种需要图像处理的场景:
- 照片编辑应用:快速应用滤镜效果
- 相机应用:实时预览和处理
- 视频编辑:逐帧处理视频
- AR/VR应用:实时图像处理
- 社交媒体:快速滤镜效果
- HDR图像处理:专业图像处理
🖥️ macOS 支持
Harbeth 完全支持 macOS 平台,为桌面应用提供强大的图像处理能力,打造原生、优化的用户体验:
🎨 macOS 展示
探索 Harbeth 在 macOS 上的强大功能:
|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
|
|
|
|
|
|
|
|
🌟 总结
Harbeth是一个功能强大、性能优异的Metal图像处理库,它不仅提供了丰富的滤镜效果,还支持HDR图像处理,为iOS和macOS开发者提供了一套完整的图像处理解决方案。
无论是快速原型开发还是生产环境应用,Harbeth都能满足你的需求。它的高性能特性让图像处理不再成为应用的性能瓶颈,而简洁的API设计则让开发过程更加愉快。
如果你正在寻找一个强大而灵活的图像处理库,Harbeth绝对值得尝试!
📁 项目链接
- GitHub: github.com/yangKJ/Harb...
- 文档: 详细的API文档和使用示例
- 示例应用: 包含多种使用场景的示例代码
让Harbeth为你的应用添加绚丽的图像处理能力,让每一张图片都成为艺术品! 🎨✨

