2016-01-29 3 views
0

Я знаю, что есть несколько других способов сделать это; Я не хочу импортировать все, что мне не нужно. Если кто-то может помочь мне с его кодом, это будет здорово.Как добавить водяной знак к изображению с помощью этого кода?

В настоящее время он сохраняет только исходное изображение без изображения водяного знака.

extension UIImage { 

    class func imageWithWatermark(image1: UIImageView, image2: UIImageView) -> UIImage { 
     UIGraphicsBeginImageContextWithOptions(image1.bounds.size, false, 0.0) 
     image2.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
     image1.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
     let img = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return img 
    } 
} 

func addWatermark() { 
    let newImage = UIImage.imageWithWatermark(imageView, image2: watermarkImageView) 
    UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil) 
} 

EDIT: У меня есть водяной знак, отображаемый на сохраненных изображениях.

я должен был изменить порядок слоев:

image1.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
image2.layer.renderInContext(UIGraphicsGetCurrentContext()!) 

ОДНАКО, не появляющийся в правильном place.It, кажется, всегда появляются в центре изображения.

+0

так что вы хотите, чтобы просто поставить какой-нибудь текст на изображении? –

+0

сделал у вас http://stackoverflow.com/questions/6992830/how-to-write-text-on-image-in-objective-c-iphone? –

+0

Жаль, нет изображения. Я хочу изображение поверх другого изображения. – bkwebhero

ответ

6

Если вы захватить несколько изображений UIImageViews' вы можете использовать следующую концепцию:

if let img = UIImage(named: "image.png"), img2 = UIImage(named: "watermark.png") { 

    let rect = CGRect(x: 0, y: 0, width: img.size.width, height: img.size.height) 

    UIGraphicsBeginImageContextWithOptions(img.size, true, 0) 
    let context = UIGraphicsGetCurrentContext() 

    CGContextSetFillColorWithColor(context, UIColor.whiteColor().CGColor) 
    CGContextFillRect(context, rect) 

    img.drawInRect(rect, blendMode: .Normal, alpha: 1) 
    img2.drawInRect(CGRectMake(x,y,width,height), blendMode: .Normal, alpha: 1) 

    let result = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    UIImageWriteToSavedPhotosAlbum(result, nil, nil, nil) 

} 
+0

Должен быть отмечен как принятый –

 Смежные вопросы

  • Нет связанных вопросов^_^