ios — объединить два разных изображения в Swift
Задать вопрос
спросил
Изменено 1 год, 9 месяцев назад
Просмотрено 5к раз
Я хочу объединить два UIImage
в Swift:
и
Я пробовал с
func maskImage(image: UIImage, withMask maskImage: UIImage) -> UIImage { пусть maskRef = maskImage.CGImage пусть маска = CGImageMaskCreate( CGImageGetWidth(maskRef), CGImageGetHeight(маскаRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), ноль, ЛОЖЬ) пусть замаскировано = CGImageCreateWithMask(image.CGImage, маска) пусть maskedImage = UIImage(CGImage: замаскировано!) // Не нужно освобождать. Объекты Core Foundation автоматически управляются памятью. возврат маскированного изображения }
и вызов
let imageName = data.valueForKey("imagename")!.description пусть изображение = UIImage (с именем: imageName) пусть imageBackground : UIImage = UIImage (с именем: «фон»)! пусть maskedImage: UIImage = self.maskImage(изображение!, withMask: imageBackground) cell.imageButton.setImage(maskedImage, forState: .Normal)
результат — это просто изображение, которое я получаю с помощью let image = UIImage(named: imageName)
, второе изображение (волейбол)
В чем моя ошибка?
- ios
- swift
- слияние
- uiimage
8
Если вас не волнует производительность, вы можете использовать Core Image
let volleyballImage = CIImage(image: UIImage(named:"volleyball. png")!)!) let otherImage = CIImage(image: UIImage(named:"other.png")!) пусть композитный фильтр = CIFilter (имя: "CIAdditionCompositing")! композитный фильтр. setValue (volleyballImage, forKey: kCIInputImageKey) составной фильтр. setValue (другое изображение, forKey: kCIInputBackgroundImageKey) если пусть композитное изображение = композитный фильтр.выходное изображение { пусть изображение = UIImage (CIImage: составное изображение) // делаем что-то с "объединенным" изображением }
1
Вы можете сделать это в несколько строк:
var bottomImage:UIImage = UIImage(named: "imageName")! var topImage:UIImage = UIImage(с именем:"фон")! // Измените здесь новый размер изображения, если хотите var newSize = CGSizeMake (нижнее изображение. размер. ширина, нижнее изображение. размер. высота) UIGraphicsBeginImageContextWithOptions (newSize, false, bottomImage.