Как объединить две фотографии: Как быстро объединить 2 фото в одно

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.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *