Bir görüntüyü drawInRect yöntemiyle yeniden boyutlandırmak istiyorum, ancak doğru çerçeve oranını korumak isterim. Ayrıca, verilen çerçeveyi (.ScaleAspectFill, UIViewContentMode için yaptığı gibi) doldurur. Bunun için herkesin hazır bir cevabı var mı? İşte Bir görüntüyü, Scale Aspect Fill gibi en boy oranını korurken drawInRect ile yeniden boyutlandırın.
(... oldukça basit) benim kodudur:func scaled100Image() -> UIImage {
let newSize = CGSize(width: 100, height: 100)
UIGraphicsBeginImageContext(newSize)
self.pictures[0].drawInRect(CGRect(x: 0, y: 0, width: 100, height: 100))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
Sen benim kahramanımsın – MScottWaller
Benim için çok iyi değil. Bunu her çalıştırdığımda 40MB kaybediyorum ve bir kerede çok sayıda fotoğrafı küçültmeye çalıştığım için uygulamam çöküyor. – RowanPD
Ölçek kullan, bu nedenle görüntü bulanık değil - "UIGraphicsBeginImageContextWithOptions (targetSize, true, UIScreen.mainScreen(). Scale)" –