如何使用(非方形)曲奇模板裁剪照片?

Posted

技术标签:

【中文标题】如何使用(非方形)曲奇模板裁剪照片?【英文标题】:How to crop a photo using a (non-square) cookie cutter template? 【发布时间】:2016-10-25 21:20:17 【问题描述】:

例如:用户拍摄了一辆漂亮汽车的照片,然后希望能够将其裁剪成心形。我希望他们能够通过心形模板查看照片,将他们想要的汽车图像的哪一部分滚动到心形插槽中。然后,这只会保存心脏内部的内容,使(部分、裁剪的)图像呈心形。

不完全确定如何将它们拼凑在一起,或者是否可以裁剪成不规则的形状。有人对此有任何了解吗?以及最近的 Swift 3 语法?

【问题讨论】:

【参考方案1】:

您的千篇一律就是所谓的蒙版图像。保留口罩的白色部分;黑色部分被剪掉。

  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()!)
  

【讨论】:

感谢您的澄清!

以上是关于如何使用(非方形)曲奇模板裁剪照片?的主要内容,如果未能解决你的问题,请参考以下文章

从 iPhone 的照片库中调整方形裁剪图像的正确方法而不会失真

使用 AVFoundation 裁剪视频

在 iOS 中将图像裁剪为正方形

如何自动裁剪和居中图像

如何在 iOS 中裁剪非矩形区域

如何使用 CSS 居中和裁剪图像以始终以方形显示?