一个易于使用的图像/视频滤镜集合。
1,使用 Swift Package Manager 将 SemanticImage 作为 Swift Package 添加到你的项目中。或者直接将 SemanticImage.swift 拖到你的项目中。
2,导入并初始化 SemanticImage
import SemanticImage
let semanticImage = SemanticImage()
需要 iOS 14 或更高版本
let maskImage:UIImage? = semanticImage.personMaskImage(uiImage: yourUIImage)
let swappedImage:UIImage? = semanticImage.swapBackgroundOfPerson(personUIImage: yourUIImage, backgroundUIImage: yourBackgroundUIImage)
let blurredPersonImage:UIImage? = semanticImage.personBlur(uiImage:UIImage, intensity:Float)
// Blur intensity: 0~100
let prominentMaskImage:UIImage? = semanticImage.saliencyMask(uiImage:image)
let backgroundSwapImage:UIImage? = semanticImage.saliencyBlend(objectUIImage: image, backgroundUIImage: bgImage)
let faceImage:UIImage? = semanticImage.faceRectangle(uiImage: image)
let bodyImage:UIImage? = semanticImage.humanRectangle(uiImage: image)
let faceImages:[UIImage] = semanticImage.faceRectangles(uiImage: image)
let bodyImages:[UIImage] = semanticImage.humanRectangles(uiImage: image)
let animalImage:UIImage? = semanticImage.animalRectangle(uiImage: image)
let animalImages:[UIImage] = semanticImage.animalRectangles(uiImage: image)
let documentImage:UIImage? = semanticImage.getDocumentImage(image: image)
guard let ciFilter = CIFilter(name: "CIEdgeWork", parameters: [kCIInputRadiusKey:3.0]) else { return }
semanticImage.ciFilterVideo(videoURL: url, ciFilter: ciFilter, { err, processedURL in
// Handle processedURL in here.
})
// This process takes about the same time as the video playback time.
semanticImage.swapBackgroundOfPersonVideo(videoURL: url, backgroundUIImage: uiImage, { err, processedURL in
// Handle processedURL in here.
})
// This process takes about the same time as the video playback time.
semanticImage.swapBGOfSalientObjectVideo(videoURL: url, backgroundUIImage: uiImage, { err, processedURL in
// Handle processedURL in here.
})
// This process takes about the same time as the video playback time.
semanticImage.applyProcessingOnVideo(videoURL: url, { ciImage in
// Write the processing of ciImage (i.e. video frame) here.
return newImage
}, { err, editedURL in
// The processed video URL is returned
})
Daisuke Majima
来自日本的自由职业 iOS 程序员。
个人资料
作品
博客:Medium
联系方式: rockyshikoku@gmail.com