Wie man das Bild in Swift dreht?
Ich bin nicht in der Lage, drehen Sie das Bild um 90 Grad im swift. Ich habe unten geschrieben code, aber es ist ein Fehler und kann nicht kompiliert werden,
func imageRotatedByDegrees(oldImage: UIImage, deg degrees: CGFloat) -> UIImage {
//Calculate the size of the rotated view's containing box for our drawing space
let rotatedViewBox: UIView = UIView(frame: CGRect(x: 0, y: 0, width: oldImage.size.width, height: oldImage.size.height))
let t: CGAffineTransform = CGAffineTransform(rotationAngle: degrees * CGFloat(M_PI / 180))
rotatedViewBox.transform = t
let rotatedSize: CGSize = rotatedViewBox.frame.size
//Create the bitmap context
UIGraphicsBeginImageContext(rotatedSize)
let bitmap: CGContext = UIGraphicsGetCurrentContext()!
//Move the origin to the middle of the image so we will rotate and scale around the center.
bitmap.translateBy(x: rotatedSize.width / 2, y: rotatedSize.height / 2)
//Rotate the image context
bitmap.rotate(by: (degrees * CGFloat(M_PI / 180)))
//Now, draw the rotated/scaled image into the context
bitmap.scaleBy(x: 1.0, y: -1.0)
bitmap.draw(oldImage, in: CGRect(origin: (x: -oldImage.size.width / 2, y: -oldImage.size.height / 2, width: oldImage.size.width, height: oldImage.size.height), size: oldImage.cgImage))
let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return newImage
}
unten ist der code, ich bin mir nicht sicher über
bitmap.draw(oldImage, in: CGRect(origin: (x: -oldImage.size.width / 2, y: -oldImage.size.height / 2, width: oldImage.size.width, height: oldImage.size.height), size: oldImage.cgImage))
InformationsquelleAutor der Frage Techiee | 2016-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
set Bildansicht Bild
InformationsquelleAutor der Antwort Jayesh Miruliya
InformationsquelleAutor der Antwort Chirag kukreja
Können Sie folgenden code verwenden für eine schnelle 3:
InformationsquelleAutor der Antwort Smit Yash
In einer Zeile:
InformationsquelleAutor der Antwort Aaron Halvorsen
Dies ist eine Erweiterung der
UIImage
dass die Ziele Swift 4.0 und drehen kann nur das Bild ohne die Notwendigkeit für eineUIImageView
. Erfolgreich getestet, dass das Bild gedreht wurde, und nicht nur hatte seine exif-Daten geändert.Ausführen einer 180-Grad-Drehung, können Sie es so nennen:
Wenn aus irgendeinem Grund, es nicht zu drehen, das ursprüngliche Bild wird dann zurückgegeben werden.
InformationsquelleAutor der Antwort CodeBender
Können Sie zunächst festlegen, dass Ihr Bild in der Bildansicht und drehen Sie bekommen Ihr Bild in der Bildansicht
Hier:
InformationsquelleAutor der Antwort Okan Yücel
Dein code ist nicht so weit Weg von der funktionalen. Wenden Sie die Transformation, wie Sie tun, direkt auf die bitmap, die Sie nicht brauchen, ein Zwischenergebnis:
Auch, wenn du gehst, um eine Funktion erstellen, dreht ein Bild, es ist in der Regel eine gute form, um eine
clockwise: Bool
- parameter zu interpretieren, diedegrees
argument ist, im Uhrzeigersinn rotierend oder nicht. Die Umsetzung und der entsprechenden Umstellung auf Bogenmaß überlasse ich Ihnen.Beachten Sie auch, dass es ein bisschen hand-wellig für meinen Teil davon ausgehen, dass
oldImage.size
ist nicht null. Wenn es heißt, Kraft-unwrappingUIGraphicsGetCurrentContext()!
wird wahrscheinlich Abstürzen. Sie sollten überprüfen dieoldImage
's-Größe und wenn es ungültig ist, nur zurückoldImage
.InformationsquelleAutor der Antwort par
Dein problem ist, dass Sie mit nicht vorhandenen Initialisierung für CGRect. Wenn Sie verwenden möchten CGRect(Herkunft:Größe:)dann erstellen Sie Ursprungs richtig, ohne width-und height-Parameter. Oder entfernen Sie parameter "Größe" und nutzen CGRect(x:y:Breite:Höhe:).
Ersetzen Sie einfach diese Zeile
dieses:
InformationsquelleAutor der Antwort alexburtnik
In Swift und Xcode 4.1 9.4.1
Wenn Sie möchten, fügen Sie die animation...
InformationsquelleAutor der Antwort iOS