Weitere Informationen finden Sie in meinem Blog-Beitrag "Bildgröße in schnellem und objektivem C ändern" .
Bildgrößenänderung schnell wie unten.
func resizeImage(image: UIImage, targetSize: CGSize) -> UIImage {
let size = image.size
let widthRatio = targetSize.width / size.width
let heightRatio = targetSize.height / size.height
// Figure out what our orientation is, and use that to form the rectangle
var newSize: CGSize
if(widthRatio > heightRatio) {
newSize = CGSizeMake(size.width * heightRatio, size.height * heightRatio)
} else {
newSize = CGSizeMake(size.width * widthRatio, size.height * widthRatio)
}
// This is the rect that we've calculated out and this is what is actually used below
let rect = CGRectMake(0, 0, newSize.width, newSize.height)
// Actually do the resizing to the rect using the ImageContext stuff
UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
image.drawInRect(rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
Verwenden Sie die obige Funktion und ändern Sie die Bildgröße mit 200 * 200 wie unten angegeben
self.resizeImage(UIImage(named: "yourImageName")!, targetSize: CGSizeMake(200.0, 200.0))
swift3 aktualisiert
func resizeImage(image: UIImage, targetSize: CGSize) -> UIImage {
let size = image.size
let widthRatio = targetSize.width / size.width
let heightRatio = targetSize.height / size.height
// Figure out what our orientation is, and use that to form the rectangle
var newSize: CGSize
if(widthRatio > heightRatio) {
newSize = CGSize(width: size.width * heightRatio, height: size.height * heightRatio)
} else {
newSize = CGSize(width: size.width * widthRatio, height: size.height * widthRatio)
}
// This is the rect that we've calculated out and this is what is actually used below
let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)
// Actually do the resizing to the rect using the ImageContext stuff
UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
image.draw(in: rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
UIGraphicsBeginImageContextWithOptions
letzte Parameter so ist,0.0
wie dies der Maßstab des Geräts ist.Für Swift 4.0 und iOS 10
quelle
myImage.resizeImage(...)
.Da die Antwort von @KiritModi aus dem Jahr 2015 stammt, ist dies die Version von Swift 3.0:
quelle
Für Swift 4 würde ich nur eine Erweiterung von UIImage mit Verweis auf self machen.
quelle
Es ist auch möglich, AlamofireImage zu verwenden ( https://github.com/Alamofire/AlamofireImage )
Die Funktion im vorherigen Beitrag hat mir ein verschwommenes Ergebnis gebracht.
quelle
Einzelheiten
Links
Lösung
Verwendung
Ausgabe
quelle
Swift 3 Version und Erweiterungsstil
Diese Antwort kommt von @Kirit Modi.
quelle
Swift 4, Erweiterungsversion, NO WHITE LINE ON EDGES.
Niemand scheint zu erwähnen, dass das
image.draw()
resultierende Bild , wenn es mit nicht ganzzahligen Werten aufgerufen wird, ein weißes Linienartefakt am rechten oder unteren Rand zeigen könnte.quelle
Swift 4 Version
quelle
Swift 4.2 Version von @KiritModi Antwort
quelle
Für Swift 5.0 und iOS 12
verwenden:
quelle
Aufruf der Resizeimage-Methode
Methode zum Ändern der Bildgröße
quelle
Swift 4 Solution-
Verwenden Sie diese Funktion
Aufruf einer Funktion: -
Hier ist 28,0 die Pixelgröße, die Sie einstellen möchten
quelle
Hier ist eine allgemeine Methode (in Swift 5) zum Verkleinern eines Bildes auf eine Größe. Das resultierende Bild kann das gleiche Seitenverhältnis wie das Original haben, oder es kann die Zielgröße sein, in der das Originalbild zentriert ist. Wenn das Bild kleiner als die Zielgröße ist, wird die Größe nicht geändert.
quelle
Sie können dies für ein passendes Bild bei Swift 3 verwenden .
Verwendung;
quelle
Hier haben Sie zwei einfache
UIImage
Erweiterungsfunktionen:quelle
UIimage
.Wenn Sie hier meine Version der akzeptierten Antwort einfügen, um mit Swift 5 gut zu funktionieren. Diese Lösung erzwingt nicht das Auspacken des resultierenden Bildes, wodurch es ein bisschen sicherer und insgesamt sauberer wird.
quelle
Alle bisher aufgeführten Antworten scheinen zu einem Bild mit reduzierter Größe zu führen, die Größe wird jedoch nicht in Pixel gemessen. Hier ist eine pixelbasierte Swift 5-Größenänderung .
Verwendung:
quelle
Beispiel ist für die Bildminimierung auf 1024 und weniger
func resizeImage (Bild: UIImage) -> UIImage {
quelle
SWIFT 5 mit
newImage = UIImage(cgImage: cgImage)
quelle
UIImage Extension Swift 5
Verwenden Sie: UIImage (). Resize (200, 300)
quelle