Вот моя цель, у меня есть изображение шириной 750 и я хочу, чтобы масштабировать его до 128 Затем я нашел способ инициализации из UIImage называется init(data:scale:)Confused о инициализации (UIImage в данных: метод масштаба :) в Swift 3.0
следующего мой код
func scaleImage(image:UIImage, ToSpecificWidth targetWidth:Int) -> UIImage{
var scale = Double(targetWidth)/Double(image.size.width)
let scaledImage = UIImage(data: UIImagePNGRepresentation(image)! as Data, scale: CGFloat(scale))
return scaledImage!
}
print("originImageBeforeWidth: \(portrait?.size.width)") // output: 750
let newImage = Tools.scaleImage(image: portrait!, ToSpecificWidth: 128) // the scale is about 0.17
print("newImageWidth: \(newImage.size.width)") // output: 4394.53125
по-видимому, новая ширина слишком далеко от моей интенции Я ищу 750 * 0,17 = 128 Но я получаю 750/0,17 = 4394
тогда я изменю свое scaleImage FUNC Вот обновленный код
func scaleImage(image:UIImage, ToSpecificWidth targetWidth:Int) -> UIImage{
var scale = Double(targetWidth)/Double(image.size.width)
scale = 1/scale // new added
let scaledImage = UIImage(data: UIImagePNGRepresentation(image)! as Data, scale: CGFloat(scale))
return scaledImage!
}
print("originImageBeforeWidth: \(portrait?.size.width)") // output: 750
let newImage = Tools.scaleImage(image: portrait!, ToSpecificWidth: 128) // the scale is about 5.88
print("newImageWidth: \(newImage.size.width)") // output: 128
Какой именно то, что я хочу, но масштаб код = 1/масштаб не имеет никакого смысла
Что происходит Вот?
http://stackoverflow.com/questions/31314412/how-to-resize-image-in-swift проверить это –