ios - 如何旋转蒙版图像?

标签 ios swift rotation imageview mask

现在我的代码显示这样的图像

enter image description here 如果我可以将图像顺时针旋转 90 度,那就可以了。我该怎么做呢。下面列出了代码。我为此删除了一些不必要的代码行。

import UIKit

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    var screenView: UIImageView!
    var image1 = UIImage(named: "w")

    func cropImageIntoQuarterSquare(image: UIImage) -> UIImage? {
        //shape of mask
        let image = photoDispaly.image
        let maskingImage = UIImage(named: "mask5")

        //where the masking code starts
        photoDispaly.image = maskImage(image: image!, mask: maskingImage!)
        photoDispaly.autoresizingMask = [.flexibleWidth, .flexibleHeight, .flexibleBottomMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin]
        photoDispaly.contentMode = .scaleAspectFit // OR .scaleAspectFill
        photoDispaly.clipsToBounds = true

        let originalImageSize: CGSize = image!.size
        let smallImageSize = CGSize(width: (originalImageSize.width + 40), height: (originalImageSize.height + 40))
        UIGraphicsBeginImageContext(smallImageSize)
        image?.draw(at: CGPoint.zero)
        let imageResult = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return imageResult
    }

    @IBOutlet var photoDispaly: UIImageView!

    func maskImage(image:UIImage, mask:(UIImage))->UIImage{
        let imageReference = image.cgImage
        let maskReference = mask.cgImage
        let imageMask = CGImage(maskWidth: maskReference!.width,
                                height: maskReference!.height,
                                bitsPerComponent: maskReference!.bitsPerComponent,
                                bitsPerPixel: maskReference!.bitsPerPixel,
                                bytesPerRow: maskReference!.bytesPerRow,
                                provider: maskReference!.dataProvider!, decode: nil, shouldInterpolate: true)
        let maskedReference = imageReference!.masking(imageMask!)
        let maskedImage = UIImage(cgImage:maskedReference!)
        return maskedImage
    }

    func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
        if let error = error {
            return
        } else {
            return
        }
    }

最佳答案

您可以在 ViewDidLoad 函数中对 UIImageView 运行转换

photoDispaly.transform = CGAffineTransform(rotationAngle: M_PI/4)

您也可能想将 Dispaly 重命名为 Display ;)

关于ios - 如何旋转蒙版图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43217792/

相关文章:

ios - iOS swift 中没有收到推送通知?

ios - 检查对象引用计数的简单方法

ios - 将文本放在 UIlabel 的顶部

javascript - 与 jquery 旋转动画作斗争

SVG 变换原点在 Inkscape 中被破坏

ios - 自动 Cloud Firestore 更新

ios - MKMapView 不改变区域

iphone - 如何让 UIButton 在触摸时改变颜色

ios - RxSwift - 表格 View 中的文本字段变量绑定(bind)

javascript - Threejs相机旋转问题