来源:AI开发日志公众号专辑「Build Your Own X With AI」
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMjg3MjE2OA==&mid=2247485697&idx=1&sn=09d885b2bd65a79573fab0fefcede768&chksm=f95c9286ce2b1b90d165af2cadf2b911a63d3c1fdbc6db6f5b22367cbbb7f1e7ae77df02c7dc#rd
,时长
00:05
https://github.com/buld-your-own-x-with-ai/RemoveBG
背景去除应用
这是一个使用SwiftUI开发的iOS应用,可以智能去除图片背景并提供多种功能。
🔗 项目地址
GitHub仓库: https://github.com/buld-your-own-x-with-ai/RemoveBG
✨ 主要功能
🎯 智能背景去除
使用苹果Vision框架的人像分割技术
高精度识别并保留人物主体
背景完全透明化处理
支持各种复杂背景场景
📱 现代化界面设计
SegmentedControl格式选择器
:位于界面顶部,支持JPG、PNG、WebP三种保存格式
左右对比功能
:可拖动分割线实时对比原图和去背景效果
棋盘格背景
:清晰显示透明区域效果
流畅交互体验
:现代化渐变分割线和精美拖动手柄
💾 多格式保存支持
PNG格式
:保持完整透明背景,最佳选择
JPG格式
:适合不需要透明背景的场景,文件更小
WebP格式
:现代化格式,文件小且支持透明
📸 应用截图
拜合拉木(U22国足)
🔧 技术特性
图片方向修复
:彻底解决旋转90度问题,输出图片与原图方向完全一致
尺寸保持
:处理后图片与原图尺寸完全一致
高质量处理
:使用Core Image和Vision框架确保最佳效果
异步处理
:后台处理不阻塞UI,提供流畅用户体验
📦 安装和运行
克隆项目
git clone https://github.com/buld-your-own-x-with-ai/RemoveBG.gitcd RemoveBG
在Xcode中运行
使用Xcode 16.0+打开RemoveBackground.xcodeproj
选择目标设备(iPhone模拟器或真机)
点击运行按钮或按Cmd+R
系统要求
macOS 15.0+ (用于开发)
Xcode 16.0+
iOS 18.5+ (目标设备)
🚀 使用方法
选择保存格式
:在顶部SegmentedControl中选择JPG/PNG/WebP
选择图片
:点击”选择图片”从相册选择照片
去除背景
:点击”去除背景”开始智能处理
对比效果
:左右拖动分割线查看原图与透明背景的对比
保存图片
:点击”保存”按钮,使用选定格式保存到相册
🛠 技术实现
核心技术栈
SwiftUI
:现代化响应式用户界面框架
Vision框架
:苹果官方机器学习人像分割API
Core Image
:高性能图像处理和滤镜应用
PhotosUI
:相册访问和图片选择
Canvas
:自定义棋盘格背景绘制
关键算法
VNGeneratePersonSegmentationRequest
:高精度人像分割
CIBlendWithMask
:透明背景合成
图片标准化处理
:解决方向旋转问题
像素级处理
:备用算法确保兼容性
权限配置
通过Build Settings配置权限(不使用Info.plist)
相册访问权限:INFOPLIST_KEY_NSPhotoLibraryUsageDescription
相机访问权限:INFOPLIST_KEY_NSCameraUsageDescription
📁 项目结构
RemoveBackground/
├── RemoveBackground/
│ ├── RemoveBackgroundApp.swift # 应用入口
│ ├── ContentView.swift # 主界面
│ ├── ComparisonView.swift # 对比视图组件
│ ├── ImagePicker.swift # 图片选择器
│ ├── BackgroundRemover.swift # 背景去除核心逻辑
│ └── Assets.xcassets/ # 应用资源
├── RemoveBackground.xcodeproj/ # Xcode项目文件
└── README.md # 项目说明
📋 系统要求
开发环境
macOS 15.0+
Xcode 16.0+
Swift 5.0+
运行环境
iOS 18.5+
支持iPhone和iPad
需要相册访问权限
🎨 界面预览
主要界面元素
格式选择器
:顶部SegmentedControl,直观选择保存格式
图片对比区域
:左侧透明背景,右侧原图,可拖动分割线
控制按钮
:选择图片、去除背景、保存图片
状态指示
:处理进度和结果提示
视觉设计
现代化扁平设计风格
渐变色彩搭配
流畅动画效果
响应式布局适配
🔍 技术亮点
- 智能背景分割
letrequest=VNGeneratePersonSegmentationRequest()request.qualityLevel =.accurate request.outputPixelFormat = kCVPixelFormatType_OneComponent8
- 透明背景合成
letblendFilter=CIFilter(name:”CIBlendWithMask”)blendFilter.setValue(originalImage, forKey: kCIInputImageKey)blendFilter.setValue(transparentBackground, forKey: kCIInputBackgroundImageKey)blendFilter.setValue(scaledMaskImage, forKey: kCIInputMaskImageKey)
- 图片方向标准化
privatestaticfunc normalizeImageOrientation(_ image:UIImage)->UIImage{if image.imageOrientation ==.up {return image }UIGraphicsBeginImageContextWithOptions(image.size,false, image.scale) image.draw(in:CGRect(origin:.zero, size: image.size))letnormalizedImage=UIGraphicsGetImageFromCurrentImageContext()UIGraphicsEndImageContext()return normalizedImage ?? image}
📝 更新日志
v1.0.0 (2025/9/6)
✅ 实现智能背景去除功能
✅ 添加左右拖动对比界面
✅ 支持多种保存格式(JPG/PNG/WebP)
✅ 修复图片旋转90度问题
✅ 优化图片尺寸处理
✅ 添加SegmentedControl格式选择器
✅ 移除录制功能,简化界面
✅ 完善权限配置和错误处理
🤝 贡献
我们欢迎所有形式的贡献!
如何贡献
Fork这个仓库
创建你的功能分支 (git checkout -b feature/AmazingFeature)
提交你的更改 (git commit -m ‘Add some AmazingFeature’)
推送到分支 (git push origin feature/AmazingFeature)
打开一个Pull Request
报告问题
如果你发现了bug或有功能建议,请在GitHub Issues中提交。
开发指南
遵循Swift编码规范
确保代码通过编译测试
添加适当的注释和文档
保持代码简洁和可读性
📄 许可证
MIT License
享受智能背景去除的便捷体验! 🎉