I ein Bild zeichnen Verwendung drawInRect()
Methode my Rechteck einer Größe von 120 * 120 und mein Bild ist 100 * 100 wie i eine Hintergrundfarbe zu meinem Bild festlegen in swiftwie eine Hintergrundfarbe in UIImage in schnellen Programmierung eingestellt
Antwort
Sie auch diese Erweiterung verwenden können:
extension UIImage {
func imageWithColor(tintColor: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
let context = UIGraphicsGetCurrentContext() as CGContextRef
CGContextTranslateCTM(context, 0, self.size.height)
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetBlendMode(context, kCGBlendModeNormal)
let rect = CGRectMake(0, 0, self.size.width, self.size.height) as CGRect
CGContextClipToMask(context, rect, self.CGImage)
tintColor.setFill()
CGContextFillRect(context, rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext() as UIImage
UIGraphicsEndImageContext()
return newImage
}
}
Und dann
image.imageWithColor("#1A6BAE".UIColor)
Es ist wahrscheinlich am besten, die backgroundColor-Eigenschaft Ihres UIImageView zu verwenden. Sie können dies wie folgt -
self.imageView.backgroundColor = UIColor.redColor()
Die folgenden voreingestellten Farben bestehen:
blackColor
darkGrayColor
lightGrayColor
whiteColor
grayColor
redColor
greenColor
blueColor
cyanColor
yellowColor
magentaColor
orangeColor
purpleColor
brownColor
clearColor
Wenn Sie stattdessen programmatisch eine UIImage mit einer bestimmten Farbe erstellen möchten, können Sie dies wie folgt:
Wo die var
"Bild" ist Ihre farbigen UIImage.
Diese BackgroundColor-Eigenschaft funktioniert gut, aber wenn ich das Bild speichern, ist die Hintergrundfarbe immer noch weiß –
, also benutze ich diesen Code UIGraphicsBeginImageContextWithOptions (CGSizeMake (120,120), falsch, 1,0) let rect2 = CGRectMake (0, 0, displayImage.size. . Breite, displayImage.size.height) let context = UIGraphicsGetCurrentContext() UIColor.redColor() set() CGContextFillRect (context, RECT2) displayImage.drawInRect (RECT2) image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // displayImage ist eine Größe von 100 * 100 –
aktualisiert @ Egghead-Lösung für Swift 3
extension UIImage {
static func imageWithColor(tintColor: UIColor) -> UIImage {
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0)
tintColor.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}
Verbrauch:
UIImage.imageWithColor(tintColor: <Custom color>)
Eine andere Möglichkeit, ein Bild mit einer Hintergrundfarbe mit einer Verlängerung zu erhalten, ist: (Swift 3)
extension UIImage {
/**
Returns an UIImage with a specified background color.
- parameter color: The color of the background
*/
convenience init(withBackground color: UIColor) {
let rect: CGRect = CGRect(x: 0, y: 0, width: 1, height: 1)
UIGraphicsBeginImageContext(rect.size);
let context:CGContext = UIGraphicsGetCurrentContext()!;
context.setFillColor(color.cgColor);
context.fill(rect)
let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
self.init(ciImage: CIImage(image: image)!)
}
}
Und dann:
// change UIColor.white with your color
let image = UIImage(withBackground: UIColor.white)
- 1. eine Reihe von UIImage erhalten in schnellen
- 2. schnellen Programmierung NSErrorPointer Fehler etc
- 3. Wie wird die Hintergrundfarbe des Stapels eingestellt?
- 4. UIImageView Programmatically in schnellen
- 5. wie in UIButton Farbe erhalten schnellen
- 6. Wie eine Warnung in Schweigen schnellen
- 7. wie in schnellen
- 8. Wie borderWechsel in schnellen
- 9. Wie in schnellen
- 10. Wie in schnellen
- 11. Wie in schnellen
- 12. in schnellen
- 13. Android-Programmierung: Hintergrundfarbe nicht vollständig abdecken
- 14. Wie Hintergrundfarbe nur auf UILabel Text eingestellt werden
- 15. JSON Fehler in schnellen
- 16. Wie verschachtelte Sammlungen in schnellen
- 17. Miniatur Erste für zugeschnittene Video in schnellen
- 18. Tippen Ort in einem UIImage
- 19. Wie ein Singleton in schnellen
- 20. Wie Suche Hintergrundfarbe in Eclipse
- 21. eine Teilmenge von Tupel Array in schnellen
- 22. Ein UIImage in eine Textur konvertieren
- 23. Wie Intervallwert in UIDatePicker in schnellen
- 24. Render eine MKPolyline in einem UIImage
- 25. NSURL getResourceValue in schnellen
- 26. ios, wandle UIImage in eine MultipartFile
- 27. TableViewCell Animation in schnellen
- 28. Pragma Marke in schnellen
- 29. Cast NSString! in schnellen
- 30. ivar_getTypeEncoding return "" in schnellen
Wenn Sie ein tatsächliches UIImage-Objekt haben, können Sie einfach Legen Sie die Eigenschaft ".backgroundColor" fest. – aspyct