У меня возникает следующая проблема: мне нужно объединить два изображения A и B, чтобы создать новое изображение C в результате слияния. Первое изображение (A) является .png и его рамкой для второго (B), которое я взял. Как я могу объединить эти два изображения в новом (C), которые имеют одинаковый размер первого (A)?слияние двух разных изображений swift
Я попробовать этот код:
var bottomImage: UIImage = polaroidFoto.image!
var image: UIImage = immaginePropria.image!
var newSize: CGSize = CGSizeMake(300, 300)
UIGraphicsBeginImageContext(newSize)
bottomImage.drawInRect(CGRectMake(0, 0, newSize.width, newSize.height))
image.drawInRect(CGRectMake(0, 0, newSize.width, newSize.height), blendMode: kCGBlendModeNormal, alpha: 0.8) //0.8 default
var newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
но это возвращение ко мне новое изображение (C), но с альфа воздействием на него, я хочу, чтобы образ (А) остаться на изображение (B) и объединить эти два в новый (C)! Спасибо!
UPDATE Может кто-то попытается исправить этот код:
func maskImage(image: UIImage, withMask maskImage: UIImage) -> UIImage {
var colorSpace: CGColorSpaceRef = CGColorSpaceCreateDeviceRGB()
var maskImageRef: CGImageRef = maskImage.CGImage()
var mainViewContentContext: CGContextRef = CGBitmapContextCreate(Nil, maskImage.size.width, maskImage.size.height, 8, 0, colorSpace, kCGImageAlphaPremultipliedFirst)
CGColorSpaceRelease(colorSpace)
if mainViewContentContext == nil {
return nil
}
var ratio: CGFloat = 0
ratio = maskImage.size.width/image.size.width
if ratio * image.size.height < maskImage.size.height {
ratio = maskImage.size.height/image.size.height
}
var rect1: CGRect = 00maskImage.size.widthmaskImage.size.height
var rect2: CGRect = -((image.size.width * ratio) - maskImage.size.width)/2-((image.size.height * ratio) - maskImage.size.height)/2image.size.width * ratioimage.size.height * ratio
CGContextClipToMask(mainViewContentContext, rect1, maskImageRef)
CGContextDrawImage(mainViewContentContext, rect2, image.CGImage)
var newImage: CGImageRef = CGBitmapContextCreateImage(mainViewContentContext)
CGContextRelease(mainViewContentContext)
var theImage: UIImage = UIImage.imageWithCGImage(newImage)
CGImageRelease(newImage)
return theImage }
Это один может быть полезным, но синтаксис полна ошибок! Спасибо!
код полна ошибок! Можете ли вы настроить синтаксис и адаптировать его для быстрого? –
, пожалуйста, проверьте обновленный ответ –
спасибо, он работает !! Как изменить размер maskedImage до 400x400? –