2015-02-09 2 views
0

Я пытаюсь изменить изображение, добавив в него текст, но код, который я получил от этой должности не работает: How to write text on image in Objective-C (iOS)?Swift: Добавление текста в изображение не

Мой код редактирования изображений выглядит это:

func addTextToImage(image:UIImage, text:NSString, pointof: CGPoint) -> UIImage{ 

    let font:UIFont = UIFont.boldSystemFontOfSize(12) 

    let dict:NSDictionary = [NSFontAttributeName : font] 

    UIGraphicsBeginImageContext(image.size) 
    image.drawInRect(CGRectMake(0, 0, image.size.width, image.size.height)) 
    let rect: CGRect = CGRectMake(pointof.x, pointof.y, image.size.width, image.size.height) 
    let color: UIColor = UIColor.whiteColor() 
    text.drawInRect(CGRectIntegral(rect), withAttributes:dict) 

    let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage 
} 

И тогда я использую метод textViewDidChange, чтобы добавить текст к изображению, но он не работает:

func textViewDidChange(textView: UITextView){ 
    backgroundImage.image = addTextToImage(imageToView, text: textViewer.text, pointof: CGPointMake(0, 0)) 
} 

Любые предложения о том, что я делаю неправильно ш следует приветствовать.

+0

Сначала нам нужно знать, что не так. «Не работает» не помогает. Какой результат вы получаете? Вызывается ли textViewDidChange? Создано ли новое свойство? – rdelmar

+0

@rdelmar Ничего не происходит, вызывается textViewDidChange, и поэтому я предполагаю, что он создается. – martin

+0

Не предполагайте. Поместите заявление печати непосредственно перед «return newImage» и посмотрите, не является ли newImage не нулем. – rdelmar

ответ

0
func addTextToImage(drawText text: NSString, inImage image: UIImage, atPoint point: CGPoint) -> UIImage 
{ 
    let textColor = UIColor.blue 

    let textFont = UIFont(name: "ChalkboardSE-Regular", size: 26)! 

    let scale = UIScreen.main.scale 
    UIGraphicsBeginImageContextWithOptions(image.size, false, scale) 

    let textFontAttributes = [ 
     NSFontAttributeName: textFont, 
     NSForegroundColorAttributeName: textColor, 
     ] as [String : Any] 

    image.draw(in: CGRect(origin: CGPoint.zero, size: image.size)) 

    let rect = CGRect(origin: point, size: image.size) 
    text.draw(in: rect, withAttributes: textFontAttributes) 

    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage! 
} 
Смежные вопросы