Swift 3、如何在Pickerview Controller中改变选中图片的分辨率
In Swift 3, How to change the resolution on the selected image in Pickerview Controller
imagePickerControllerd中选中的原图分辨率为2448x3264
我想保持比例并更改分辨率。
我需要帮助。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [AnyHashable: Any]!) {
dPrint("IMAGE DICT>> \(editingInfo)")
self.dismiss(animated: true, completion: nil)
var cropImage : UIImage?
if image.size.width > 300 || image.size.height > 300
{
cropImage = self.imageWithImage(image: image, scaledToSize: CGSize(width: 300.0, height: 300.0))
}
else{
cropImage = image
}
let lowResolutionImg = cropImage?.lowestQualityJPEGNSData as Data!
}
func imageWithImage(image:UIImage ,scaledToSize newSize:CGSize)-> UIImage
{
UIGraphicsBeginImageContext( newSize )
image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
let newImage : UIImage = UIGraphicsGetImageFromCurrentImageContext()!;
UIGraphicsEndImageContext();
return newImage
}
//MARK:- EXTENSION FOR UIIMAGE
extension UIImage {
var uncompressedPNGData: Data { return UIImagePNGRepresentation(self)! }
var highestQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 1.0)! }
var highQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 0.75)! }
var mediumQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 0.5)! }
var lowQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 0.25)! }
var lowestQualityJPEGNSData:Data { return UIImageJPEGRepresentation(self, 0.0)! }
}
imagePickerControllerd中选中的原图分辨率为2448x3264
我想保持比例并更改分辨率。
我需要帮助。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [AnyHashable: Any]!) {
dPrint("IMAGE DICT>> \(editingInfo)")
self.dismiss(animated: true, completion: nil)
var cropImage : UIImage?
if image.size.width > 300 || image.size.height > 300
{
cropImage = self.imageWithImage(image: image, scaledToSize: CGSize(width: 300.0, height: 300.0))
}
else{
cropImage = image
}
let lowResolutionImg = cropImage?.lowestQualityJPEGNSData as Data!
}
func imageWithImage(image:UIImage ,scaledToSize newSize:CGSize)-> UIImage
{
UIGraphicsBeginImageContext( newSize )
image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
let newImage : UIImage = UIGraphicsGetImageFromCurrentImageContext()!;
UIGraphicsEndImageContext();
return newImage
}
//MARK:- EXTENSION FOR UIIMAGE
extension UIImage {
var uncompressedPNGData: Data { return UIImagePNGRepresentation(self)! }
var highestQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 1.0)! }
var highQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 0.75)! }
var mediumQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 0.5)! }
var lowQualityJPEGNSData: Data { return UIImageJPEGRepresentation(self, 0.25)! }
var lowestQualityJPEGNSData:Data { return UIImageJPEGRepresentation(self, 0.0)! }
}