2016-09-17 2 views
0

이미지의 크기를 변경하지 않고 .png 확장 이미지 크기를 줄여야합니다. 이미지를 만들 때 캐시에 보관하고 파일 크기는 1.3M입니다. 어떻게 크기를 500KB로 줄일 수 있습니까?파일 크기 줄이기 .png swift

+0

http://stackoverflow.com/questions/29726643/how-to-compress-of-reduce-the-size-of-an-image-before-uploading-to-parse-as-pffi/ 29726675 # 29726675 –

+0

@LeoDabus 감사합니다!,하지만 png 형식의 이미지가 필요합니다. – Carol

답변

0

나는 그것이 당신에게 도움이된다고 생각합니다.

extension UIImage { 
    func resizeWith(percentage: CGFloat) -> UIImage? { 
     let imageView = UIImageView(frame: CGRect(origin: .zero, size: CGSize(width: size.width * percentage, height: size.height * percentage))) 
     imageView.contentMode = .scaleAspectFit 
     imageView.image = self 
     UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, scale) 
     guard let context = UIGraphicsGetCurrentContext() else { return nil } 
     imageView.layer.render(in: context) 
     guard let result = UIGraphicsGetImageFromCurrentImageContext() else { return nil } 
     UIGraphicsEndImageContext() 
     return result 
    } 
    func resizeWith(width: CGFloat) -> UIImage? { 
     let imageView = UIImageView(frame: CGRect(origin: .zero, size: CGSize(width: width, height: CGFloat(ceil(width/size.width * size.height))))) 
     imageView.contentMode = .scaleAspectFit 
     imageView.image = self 
     UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, scale) 
     guard let context = UIGraphicsGetCurrentContext() else { return nil } 
     imageView.layer.render(in: context) 
     guard let result = UIGraphicsGetImageFromCurrentImageContext() else { return nil } 
     UIGraphicsEndImageContext() 
     return result 
    } 
} 

및 용도.

let myPicture = UIImage(data: try! Data(contentsOf: URL(string: "add the URL")!))! 

let myThumb1 = myPicture.resizeWith(percentage: 0.5) 
let myThumb2 = myPicture.resizeWith(width: 72.0) 
+1

고마워요 @ 라비,하지만이 같은 높이와 너비를 유지해야하는 이미지 치수를 변경합니다. – Carol