Как я могу сделать изображение subview в Uiimageview - PullRequest
0 голосов
/ 24 июня 2019

Я бы хотел, чтобы изображение (mosaic.addSubview (pixel)) отображалось в UIImageView.Позвольте мне запустить другую функцию.

Если я буду использовать (imageView.image = image) только для создания изображения, оно потеряет некоторую функцию, которую я не знаю почему.Что я должен сделать, чтобы сделать изображение, которое (imageView.image) = mosaic.addSubview (pixel)

@IBOutlet weak var imageView: UIImageView!

let mosaic = UIView()

func createMosaic(_ image: UIImage) {

    self.navigationController?.popToViewController(self, animated: true)

    let time = Date()      
    let scale: Int = 5
    let imageWidth = Int(image.size.width)
    let imageHeight = Int(image.size.height)

    let width = imageWidth * scale
    let height = imageHeight * scale
    let x = (Int(view.bounds.width) - width) / 2
    let y = (Int(view.bounds.height) - height) / 3
    mosaic.frame = CGRect(x: x, y: y, width: width, height: height)

    let rect = CGRect(x: 0, y: 0, width: 32, height: 32)

    for x in 0 ..< imageWidth {
        for y in 0 ..< imageHeight {
            let color: UIColor = image.getPixelColor(CGPoint(x: x, y: y))
            let background = UIImage.fromColor(color: color)

            let imagee = UIImage(named: "Image-\(arc4random_uniform(256))")!

            let renderer = UIGraphicsImageRenderer(size: rect.size)

            let result = renderer.image { ctx in
                UIColor.white.set()
                ctx.fill(rect)
                background.draw(in: rect, blendMode: .normal, alpha: 1)
                imagee.draw(in: rect, blendMode: .overlay, alpha: 1)
            }
            let pixel = UIImageView.init(frame: CGRect(x: x * scale, y: y * scale, width: scale, height: scale))
            pixel.image = result
            mosaic.addSubview(pixel)

            // This line will render a image perfectly

            imageView.image = image

            // I would like to make the subview to be this imageView
        }
...