UIGraphicsImageRenderer
wurde in iOS 10 neu eingeführt. Ich fragte mich, ob es eine Möglichkeit gibt, eine UIImage
damit zu drehen (jeden benutzerdefinierten Winkel). Ich weiß, dass es die classic way mit CGContextRotateCTM
gibt.Bild mit UIGraphicsImageRenderer drehen?
1
A
Antwort
3
können Sie Setup UIGraphicsImageRenderer ein Bild zu erzeugen und damit die UIGraphicsGetCurrentContext() aufrufen und den Kontext drehen
let renderer = UIGraphicsImageRenderer(size:sizeOfImage)
let image = renderer.image(actions: { _ in
let context = UIGraphicsGetCurrentContext()
context?.translateBy(x: orgin.x, y: orgin.y)
context?.rotate(by: angle)
context?.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: -orgin.x,y: -orgin.y), size: size))
}
return image
1
Durch die Dokumentation gehen und auch aufgrund der fehlenden Antworten auf diese Frage gehe ich davon aus, dass es mit der neuen UIGraphicsImageRenderer
nicht möglich ist. Hier ist, wie ich es am Ende des Tages gelöst:
func changeImageRotation(forImage image:UIImage, rotation alpha:CGFloat) -> UIImage{
var newSize:CGSize{
let a = image.size.width
let b = image.size.height
let width = abs(cos(alpha)) * a + abs(sin(alpha)) * b
let height = abs(cos(alpha)) * b + abs(sin(alpha)) * a
return CGSize(width: width, height: height)
}
let size = newSize
let orgin = CGPoint(x: size.width/2, y: size.height/2)
UIGraphicsBeginImageContext(size)
let context = UIGraphicsGetCurrentContext()
context?.translateBy(x: orgin.x, y: orgin.y)
context?.rotate(by: alpha)
context?.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: -orgin.x,y: -orgin.y), size: size))
let newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage!
}
New Size
zu dem rechteckigen Bereich entspricht, der das gedrehte Bild zu zeichnen, ohne Änderung seiner Gesamtgröße erforderlich ist. Das Bild wird dann in der Mitte gedreht und gezeichnet. Weitere Informationen hierzu finden Sie unter post.
Verwandte Themen
- 1. Bild mit pygame drehen
- 2. Bild mit CSS drehen
- 3. Howto Bild mit jquery drehen Plugin drehen?
- 4. Ersetzen von UIImageJPEGRepresentation mit JpegData von UIGraphicsImageRenderer
- 5. Bild drehen Wie Unten Bild
- 6. Bild in HTA drehen
- 7. Bild drehen math (C#)
- 8. C++: BMP Bild drehen
- 9. PHP - FPDI - Bild drehen
- 10. Php Gd Bild drehen
- 11. Bild drehen in Qt
- 12. Ekko lightbox Bild drehen
- 13. LibGDX 2D-Bild mit touchDragged() Ereignis drehen
- 14. PHP - Bild auf Referenzpunkt drehen
- 15. Ein Bild in Matplotlib drehen
- 16. Bild von seiner Unterseite drehen
- 17. Wie man Bild drehen (Animation)
- 18. wpf Bild um Zentrum drehen
- 19. Ich muss ein Bild drehen
- 20. Wie Bild mit Fixpunkt zusammen mit Touch in Android drehen
- 21. Drehen eines Rechtecks (kein Bild) in Pygame
- 22. Bild zwischen 2 Grad-Werten drehen
- 23. Ein Bild in Pygame ohne Verzerrung drehen
- 24. CSS: Bild drehen und oben links ausrichten
- 25. Rotierendes Bild. Animationsliste oder animierte drehen? (Android)
- 26. Web: Lösung für Bild drehen und zoomen
- 27. Wie kann ich Bild in AngularJs drehen
- 28. Größe ändern Bild beim Drehen von Bild in android
- 29. Drehen YUV420/NV21 Bild in android
- 30. Bild in Google Maps V3 drehen?