【问题标题】:Swift - Rotate an image, then zoom in and crop to keep width/height aspect ratio intactSwift - 旋转图像,然后放大和裁剪以保持宽度/高度纵横比不变
【发布时间】:2017-03-16 07:30:04
【问题描述】:

如果标题不清楚,请在 iPhone 上打开照片应用并编辑图片。试试旋转工具。框架不会旋转,只有图像会旋转并放大以留在框架中。

这是一张图片:

我想在我的 Swift 项目中复制这个行为。这意味着旋转图像(可以是 UIImage、CIImage 或 CGImage)但裁剪它保持相同的宽度/高度比。

我应该从哪里开始?感谢您的宝贵时间。

【问题讨论】:

    标签: swift image rotation transform crop


    【解决方案1】:

    一个应用程序为此过滤器。 CIStraightenFilter 在拉伸和裁剪图像的同时任意旋转图像以保持原始尺寸:

    let image: CIImage = /* my image 480x320 */
    let rotated = image.applyingFilter("CIStraightenFilter", 
        withInputParameters: [ kCIInputAngleKey: Double.pi / 6 ]) // 30 degrees 
    rotated.extent // still 480x320
    

    以下是一些示例(0、15°、30° 和 45° 的旋转):

    【讨论】:

    • 谢谢它运行良好!我不知道这个过滤器。如果有人需要,我添加了这行代码来创建 CGImage:| let cgImage = context.createCGImage(rotated, from: rotate.extent) |
    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2021-02-09
    • 2015-07-28
    • 2021-06-12
    • 2015-05-22
    • 2014-07-01
    • 1970-01-01
    相关资源
    最近更新 更多