Quindi, supponiamo di avere un UIImageView impostato su larghezza uguale in relazione alla vista. Un modo per ridisegnare l'immagine per adattarsi sarebbe utilizzare la grafica principale. Quello che fai è calcolare il fattore di scala necessario per ridisegnare l'immagine per adattarla correttamente. È possibile trovare alcuni grandi campioni qui:
https://github.com/natecook1000/Image-Resizing/blob/master/Image%20Resizing/ImageResizingMethods.swift
e un buon tutorial con parametri di riferimento per capire meglio le cose:
http://nshipster.com/image-resizing/
Esempio di codice che ho usato (che è fondamentalmente uno dei i metodi github si modificano in base alle mie esigenze):
let image = UIImage(data: data!)
let oldWidth = image!.size.width
let scaleFactor = UIWindow().screen.bounds.width/oldWidth
let cgImage = image!.CGImage
let width = Double(CGImageGetWidth(cgImage)) * Double(scaleFactor)
let height = Double(CGImageGetHeight(cgImage)) * Double(scaleFactor)
let bitsPerComponent = CGImageGetBitsPerComponent(cgImage)
let bytesPerRow = CGImageGetBytesPerRow(cgImage)
let colorSpace = CGImageGetColorSpace(cgImage)
let bitmapInfo = CGImageGetBitmapInfo(cgImage)
let context = CGBitmapContextCreate(nil, Int(width), Int(height), bitsPerComponent, bytesPerRow, colorSpace, bitmapInfo.rawValue)
CGContextSetInterpolationQuality(context, .High)
CGContextDrawImage(context, CGRect(origin: CGPointZero, size: CGSize(width: CGFloat(width), height: CGFloat(height))), cgImage)
let scaledImage = CGBitmapContextCreateImage(context).flatMap { return UIImage(CGImage: $0) }
imageView.image = scaledImage
fonte
2016-12-20 17:26:39
Mentre la risposta potrebbe essere più e lavoro mi ha dato alcuni spunti per risolvere il mio problema, grazie! –
@thibautnoah hai riparato? Gentilmente aiutami – user1629977
@ user1629977 penso che la mia risposta qui sotto sia più che sufficiente compagno –