使用UIGraphics实现多张图片的合并

来源:互联网 发布:php 笛卡尔乘积算法 编辑:程序博客网 时间:2024/06/05 07:56

如何实现一张图片呈现多张图片?你可以把里边的任何一张照片旋转,颠倒……但是原理不变。

本代码转载自:http://blog.csdn.net/qq350116542/article/details/50413239

// 1.把多张绘制成一张图片

    func drawImages(imageArray: [UIImage]) ->UIImage {

        // 1.1.图片的宽度

        var width:CGFloat = 0

        // 1.2.图片的高度

        var height:CGFloat = 0

        

        // 1.3.遍历图片数组里的所有图片

        for imagein imageArray {

            // 1.3.1.获取每一张图片的宽度

            width = (image.size.width > width) ? image.size.width : width

            // 1.3.2.获取每一张图片的高度,并且相加

            height += image.size.height

        }

        

        // 1.4.开始绘制图片的大小

        UIGraphicsBeginImageContext(CGSize(width: width, height: height))

        

        // 1.5.设置一个变量用来获取UIImageY

        var imageY:CGFloat = 0

        

        // 1.6.遍历图片的数组

        for imagein imageArray {

            // 1.6.1.开始绘画图片

            image.draw(at:CGPoint(x: 0, y: imageY))

            // 1.6.2.自增每张图片的Y

            imageY += image.size.height

        }

        

        // 1.7.获取已经绘制好的图片

        let drawImage =UIGraphicsGetImageFromCurrentImageContext()

        

        // 1.8.结束绘制图片

        UIGraphicsEndImageContext()

        

        // 1.9.返回已经绘制的图片

        return drawImage!

    }

    

    // 1.把两张图片绘制成一张图片

    func combine(leftImage:UIImage, rightImage: UIImage) ->UIImage {

        

        // 1.1.获取第一张图片的宽度

        let width = leftImage.size.width

        // 1.2.获取第一张图片的高度

        let height = leftImage.size.height + rightImage.size.height

        

        // 1.3.开始绘制图片的大小

        UIGraphicsBeginImageContext(CGSize(width: width, height: height))

        // 1.4.绘制第一张图片的起始点

        leftImage.draw(at:CGPoint(x: 0, y:0))

        // 1.5.绘制第二章图片的起始点

        rightImage.draw(at:CGPoint(x: 0, y: leftImage.size.height +5))

        

        // 1.6.获取已经绘制好的

        let imageLong =UIGraphicsGetImageFromCurrentImageContext()

        // 1.7.结束绘制

        UIGraphicsEndImageContext()

        

        // 1.8.返回已经绘制好的图片

        return imageLong!

    }


原创粉丝点击