Ich habe eine UIImage
Erweiterung, die CGContextDrawImage
verwendet. Es einfach eine UIImage
drehen. Ich habe auf Xcode8 und Swift3 aktualisiert und kann nicht herausfinden, wie man CGContextDrawImage
verwendet.Wie verwende CGContextDrawImage in Swift 3?
Ich habe Fehler auf CGContextDrawImage.
„Can not Werte vom Typ umwandeln "CGImage.Type zu erwarteten Argumenttyp"
Mein Code ist 'CGImage?':
CGContextDrawImage(bitmap, CGRectMake(-size.width/2, -size.height/2, size.width, size.height), CGImage)
Und ganz Erweiterung:
extension UIImage {
public func imageRotatedByDegrees(degrees: CGFloat, flip: Bool) -> UIImage {
let radiansToDegrees: (CGFloat) -> CGFloat = {
return $0 * (180.0/CGFloat(M_PI))
}
let degreesToRadians: (CGFloat) -> CGFloat = {
return $0/180.0 * CGFloat(M_PI)
}
// calculate the size of the rotated view's containing box for our drawing space
let rectZero = CGPoint(dictionaryRepresentation: CGRect.zero as! CFDictionary)
let rotatedViewBox = UIView(frame: CGRect(origin: rectZero!, size: size))
let t = CGAffineTransform(rotationAngle: degreesToRadians(degrees));
rotatedViewBox.transform = t
let rotatedSize = rotatedViewBox.frame.size
// Create the bitmap context
UIGraphicsBeginImageContext(rotatedSize)
let bitmap = 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.0, y: rotatedSize.height/2.0);
// // Rotate the image context
bitmap!.rotate(by: degreesToRadians(degrees));
// Now, draw the rotated/scaled image into the context
var yFlip: CGFloat
if(flip){
yFlip = CGFloat(-1.0)
} else {
yFlip = CGFloat(1.0)
}
bitmap!.scaleBy(x: yFlip, y: -1.0)
CGContextDrawImage(bitmap, CGRectMake(-size.width/2, -size.height/2, size.width, size.height), CGImage)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
}
Leider mit "cgcontextdrawimage swift3" Suche mich auf den Thread nicht führen ... Danke, dass du es gefunden hast! – OOPer