如何使用(非方形)曲奇切割器模板裁剪照片?
How to crop a photo using a (non-square) cookie cutter template?
例如:用户拍了一张漂亮的汽车照片,然后希望能够将其裁剪成心形。我希望他们能够通过心形模板查看照片,将他们想要的汽车图像的哪一部分滚动到心形槽中。然后这只会保存心脏内部的内容,使(部分,裁剪的)图像成为心形。
不确定如何将它们拼凑在一起,或者是否可以裁剪不规则形状。有人对此有任何了解吗?并使用最近的 Swift 3 语法?
您的千篇一律就是所谓的蒙版图像。保留面具的白色部分;黑色部分被切掉。
func masked(image:UIImage, mask:(UIImage))->UIImage?{
guard let cgImage = image.cgImage, let cgMask = mask.cgImage else {
return nil
}
UIGraphicsBeginImageContext(image.size)
guard let context = UIGraphicsGetCurrentContext() else {
return nil
}
let rect = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
context.clip(to: rect, mask: cgMask)
context.draw(cgImage, in: rect)
return UIImage(cgImage: context.makeImage()!)
}
例如:用户拍了一张漂亮的汽车照片,然后希望能够将其裁剪成心形。我希望他们能够通过心形模板查看照片,将他们想要的汽车图像的哪一部分滚动到心形槽中。然后这只会保存心脏内部的内容,使(部分,裁剪的)图像成为心形。
不确定如何将它们拼凑在一起,或者是否可以裁剪不规则形状。有人对此有任何了解吗?并使用最近的 Swift 3 语法?
您的千篇一律就是所谓的蒙版图像。保留面具的白色部分;黑色部分被切掉。
func masked(image:UIImage, mask:(UIImage))->UIImage?{
guard let cgImage = image.cgImage, let cgMask = mask.cgImage else {
return nil
}
UIGraphicsBeginImageContext(image.size)
guard let context = UIGraphicsGetCurrentContext() else {
return nil
}
let rect = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
context.clip(to: rect, mask: cgMask)
context.draw(cgImage, in: rect)
return UIImage(cgImage: context.makeImage()!)
}