Когда я пытаюсь изменить свойство в настоящее время, я получаю ошибку, что размер является «Get Only Property». Кто-нибудь знает об этом?Можно ли изменить размер изображения, получаемого с помощью камеры через изображениеPicker?
0
A
ответ
0
вы можете попробовать следующее (я не запустить его еще, уверен, что он работает ..)
let imagePickerView: UIView = self.imagePicker.view
let cameraViewFrame: CGRect = CGRectMake(0, self.overlay.topBarHeight,
self.view.bounds.size.width,
self.view.bounds.size.height -self.overlay.topBarHeight - self.overlay.bottomBarHeight);
imagePickerView.frame = cameraViewFrame
Удачи :)
0
Что мы можем сделать, это нарисовать новый UIImage вместо. Код ниже - это функция масштабирования пройденного изображения. И после того, как изображение было масштабировано, размер изменяется.
extension UIImage {
class func scaleImage(image:UIImage, scaleFloat:CGFloat) -> UIImage{
let size = CGSizeMake(image.size.width * scaleFloat, image.size.height * scaleFloat)
UIGraphicsBeginImageContext(size)
let context = UIGraphicsGetCurrentContext()
var transform = CGAffineTransformIdentity
transform = CGAffineTransformScale(transform, scaleFloat, scaleFloat)
CGContextConcatCTM(context, transform)
image.drawAtPoint(CGPointMake(0, 0))
let newimg = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newimg
}
}
Вот пример кода для масштабирования изображения до 150x150. Но эти коды помогают только квадратному изображению. Если это не квадрат, вы можете проверить, что произойдет.
extension UIImage {
class func scaleImgTo150x150(image:UIImage) -> UIImage{
let scale:CGFloat
if image.size.width > image.size.height{
scale = 150/image.size.width
}
else{
scale = 150/image.size.height
}
return UIImage.scaleImage(image, scaleFloat: scale)
}
}