2016-04-08 3 views
2

У меня есть 2 UIImageViews - один снизу и показывает изображение по умолчанию (например, фото) - на втором UIImageView, где вы можете рисовать.DrawView сохранить комбинированное изображение (умножить)

Я хотел бы создать UIImage с обоих изображений и сохранить его как новое изображение.

Как я могу это сделать? Больной попытался с:

func saveImage() { 

    print("save combined image") 

    let topImage = self.canvasView.image 
    let bottomImage = self.backgroundImageView.image 

    let size = CGSizeMake(topImage!.size.width, topImage!.size.height) 
    UIGraphicsBeginImageContextWithOptions(size, false, 0.0) 

    [topImage!.drawInRect(CGRectMake(0,0,size.width, topImage!.size.height))]; 
    [bottomImage!.drawInRect(CGRectMake(0,0,size.width, bottomImage!.size.height))]; 

    let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    UIImageWriteToSavedPhotosAlbum(newImage, self, #selector(CanvasViewController.image(_:didFinishSavingWithError:contextInfo:)), nil) 

} 

Но результат не является правильным (растягиваются и не оверлей)

Любые идеи?

ответ

0

ОК плохо нашел решение для этого, просто нужно добавить «умножить» в режиме смешивания.

let topImage = self.canvasView.image 
    let bottomImage = self.backgroundImageView.image 

    let size = CGSizeMake(bottomImage!.size.width, bottomImage!.size.height) 
    UIGraphicsBeginImageContextWithOptions(size, false, 0.0) 


    [bottomImage!.drawInRect(CGRectMake(0,0,size.width, bottomImage!.size.height))]; 

    [topImage!.drawInRect(CGRectMake(0,0,size.width, bottomImage!.size.height), blendMode: CGBlendMode.Multiply , alpha: 1.0)]; 

    let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
Смежные вопросы