Crop image in swift
Asked Answered
B

1

1

I am trying to crop image in swift. I'm trying to implement something like, user will capture a photo. Once photo is captured user will be allowed to set the crop area. I'm able to get the image from that crop area, but I want that the crop image should be resized to particular width and height. That is, if particular height or width is smaller then it should be resized.

enter image description here

This image should be of frame of it's maximum width and height. Currently it is just adding transparency to the other area.

I had also added my code for cropping

            let tempLayer = CAShapeLayer()
            tempLayer.frame = self.view.frame
            
            let path = UIBezierPath()
            var endPoint: CGPoint!
            
            for (var i = 0; i<4; i++){
                let tag = 101+i
                let pointView = viewCrop.viewWithTag(tag)
                switch (pointView!.tag){
                case 101:
                    endPoint = CGPointMake(pointView!.center.x-20, pointView!.center.y-20)
                    path.moveToPoint(endPoint)
                default:
                    path.addLineToPoint(CGPointMake(pointView!.center.x-20, pointView!.center.y-20))
                }
            }
            
            path.addLineToPoint(endPoint)
            path.closePath()
            tempLayer.path = path.CGPath
            
            tempLayer.fillColor = UIColor.whiteColor().CGColor
            tempLayer.backgroundColor = UIColor.clearColor().CGColor
            imgReceiptView.layer.mask = tempLayer
            
            UIGraphicsBeginImageContextWithOptions(viewCrop.bounds.size, imgReceiptView.opaque, 0.0);
            imgReceiptView.layer.renderInContext(UIGraphicsGetCurrentContext())
            let cropImg = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext();
            
            UIImageWriteToSavedPhotosAlbum(cropImg, nil, nil, nil)
            imgReceiptView.hidden = true
            
            let tempImageView = UIImageView(frame: CGRectMake(20,self.view.center.y-80, self.view.frame.width-40,160))
            tempImageView.backgroundColor = UIColor.grayColor()
            tempImageView.image = cropImg
            tempImageView.tag = 1001
            tempImageView.layer.masksToBounds = true
            self.view.addSubview(tempImageView)

Any help will be appreciable

Thanks in advance

Blocky answered 4/6, 2015 at 11:53 Comment(0)
P
-1

Use this Library to crop image as User Specific

https://github.com/kishikawakatsumi/PEPhotoCropEditor

Thanks Hope this will help you!

Priddy answered 14/10, 2015 at 5:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.